public static function compose(callable $g, callable $f) : callable
    {
        return function ($input) use ($g, $f) {
            return Functions::call($g, Functions::call($f, $input));
        };
    }