Immutable types for js