Pure functional javascript library (Immutable)