JSFiddle - React, Tailwind, and code Playground

JavaScript

function fmap(a, gen) {
    return function () {
        if (typeof(arguments[0]) != 'function') {
            return a(gen.apply(this, arguments));
        }
        return a(gen());
    };
}