[new] add immutable library
Merge pull request #3952 from leebyron/immutable

[new] add immutable library