JSFiddle - React, Tailwind, and code Playground

JavaScript

function fmap(a, gen) {
    return function() {
        if (arguments.length == 0) {
            return a(gen());
        }
        return a(gen.apply(null, arguments));
    };
}