code: function maybe_(thunk) {
      return function(f) {
        return function(maybe) {
          return maybe.isJust ? f (maybe.value) : thunk ();
        };
      };
    }
docs: # maybe_ :: (() -> b) -> (a -> b) -> Maybe a -> b . . Variant of [`maybe`](#maybe) that takes a thunk so the default value . is only computed if required. . . ```javascript . > function fib(n) { return n <= 1 ? n : fib (n - 2) + fib (n - 1); } . . > S.maybe_ (() => fib (30)) (Math.sqrt) (S.Just (1000000)) . 1000 . . > S.maybe_ (() => fib (30)) (Math.sqrt) (S.Nothing) . 832040 . ```