Pure Reason implementation of persistent immutable data structures.
Immutable-re provides a complete set of efficient persistent immutable data structures for Reason and OCaml, targeting both OCaml native and byte code compilation modes, as well JavaScript using BuckleScript.
The api includes concrete implementations of vectors, sets, and maps. Many implementations support transient mutability for efficient batch mutations. Additionally Immutable-re provides lazy functional iterators and sequences, along with type definitions for basic operators such as equality, comparison, and hashing.
For more details see the API docs.
npm install --save immutable-re
immutable
via OPAM (native workflow)# On macOS, install opam via Homebrew:
brew update
brew install opam
# On Linux, see here (you will need opam >= 1.2.2): http://opam.ocaml.org/doc/Install.html
opam init
# Add this to your ~/.bashrc (or ~/.zshrc):
# eval $(opam config env)
opam update
opam switch 4.02.3
eval $(opam config env)
opam install immutable
# On macOS, install opam via Homebrew:
brew update
brew install opam
# On Linux, see here (you will need opam >= 1.2.2): http://opam.ocaml.org/doc/Install.html
opam init
# Add this to your ~/.bashrc (or ~/.zshrc):
# eval $(opam config env)
opam update
opam switch 4.02.3
eval $(opam config env)
git clone git@github.com:facebookincubator/immutable-re.git
cd immutable-re
opam pin add -y immutable .
Immutable-re is under active development and is not yet production ready. We are releasing this early alpha to get community input and contributions. If you are interested in contributing please follow the directions here.
For JavaScript developers needing production ready immutable collections, we recommend using the Reason BuckleScript bindings to Immutable.js.
Immutable-re is BSD-licensed. We also provide an additional patent grant.