As well as my general Mozilla contributions, I have created several other projects. You can find details of them below.
I describe funkierJS as a
pragmatic functional toolbox for ES5. It offers a wide variety of functional programming primitives, for example
foldr, with the same API as Haskell, leading to improved function composability over other functional libraries such as
lodash. Further, all the functions are
pragmatically curried, in that one can supply any number of arguments; if the number of arguments provided are less than the number required, then the function will be partially applied.
Most importantly, funkierJS provides curried implementations of virtually the entire Ecmascript 5 standard library, allowing the user to be productive immediately, rather than having to manually create curried versions of common functions. In doing so, it also takes the opportunity to smooth out some rough edges of the library API. In particular, by virtue of currying, there are no functions with optional arguments: the versions with optional arguments become separate functions instead, hopefully eliminating a whole class of common errors.
Finally, funkierJS offers the unique innovation of "object-curried methods", which provides a mechanism for object methods that are in some sense "self-currying"; they behave like normal curried functions, but pick up their
this context from the first invocation in the partial-application sequence.