dist/decorators.js
function trampoline(fn) {
    return curry(fn.length, function () {
      for (var _len10 = arguments.length, args = Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {
        args[_key10] = arguments[_key10];
      }

      var result = fn.apply(this, args);
      while (_extractHiddenClass(result) === 'Function') {
        result = result();
      }
      return result;
    });
  }
function trampoline(fn) {
    return curry(fn.length, function () {
      for (var _len10 = arguments.length, args = Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {
        args[_key10] = arguments[_key10];
      }

      var result = fn.apply(this, args);
      while (_extractHiddenClass(result) === 'Function') {
        result = result();
      }
      return result;
    });
  }
trampoline :: (* -> *) -> (* -> *)