Record
classes can be declared with a type/protocol specification for type safety.- Improved documentation
- Improved tests
- Better synchronization (thread safety) on all platforms
- Continuous integration run on both Linux (Travis CI) and Windows (AppVeyor)
- A simple implementation of tuple, an immutable, fixed-length list/array/vector-like data structure.
FinalStruct
, a variation on Ruby'sOpenStruct
in which all fields are "final" (meaning that new fields can be arbitrarily added but once set each field becomes immutable).FinalVar
, a thread safe object that holds a single value and is "final" (meaning that the value can be set at most once after which it becomes immutable).
- Protocol specifications inspired by Clojure protocol, Erlang behavior, and Objective-C protocol
- Function overloading with Erlang-style function pattern matching
- Simple, immutable data structures, such as record and union, inspired by Clojure, Erlang, and others
Either
andOption
classes based on Functional Java and Haskell- Memoization of class methods based on Clojure memoize
- Lazy execution with a
Delay
class based on Clojure delay