Functors and monads in javascript with zero hassle