text: 'use strict';
  
  var _curry1 = require('./internal/_curry1');
  var _isArguments = require('./internal/_isArguments');
  var _isArray = require('./internal/_isArray');
  var _isObject = require('./internal/_isObject');
  var _isString = require('./internal/_isString');
  
  
  /**
   * Returns the empty value of its argument's type. Ramda defines the empty
   * value of Array (`[]`), Object (`{}`), String (`''`), and Arguments. Other
   * types are supported if they define `<Type>.empty`,
   * `<Type>.prototype.empty` or implement the
   * [FantasyLand Monoid spec](https://github.com/fantasyland/fantasy-land#monoid).
   *
   * Dispatches to the `empty` method of the first argument, if present.
   *
   * @func
   * @memberOf R
   * @since v0.3.0
   * @category Function
   * @sig a -> a
   * @param {*} x
   * @return {*}
   * @example
   *
   *      R.empty(Just(42));      //=> Nothing()
   *      R.empty([1, 2, 3]);     //=> []
   *      R.empty('unicorns');    //=> ''
   *      R.empty({x: 1, y: 2});  //=> {}
   */
  var empty = _curry1(function empty(x) {
      return (
          (x != null && typeof x['fantasy-land/empty'] === 'function')
              ? x['fantasy-land/empty']()
              : (x != null && x.constructor != null && typeof x.constructor['fantasy-land/empty'] === 'function')
                  ? x.constructor['fantasy-land/empty']()
                  : (x != null && typeof x.empty === 'function')
                      ? x.empty()
                      : (x != null && x.constructor != null && typeof x.constructor.empty === 'function')
                          ? x.constructor.empty()
                          : _isArray(x)
                              ? []
                              : _isString(x)
                                  ? ''
                                  : _isObject(x)
                                      ? {}
                                      : _isArguments(x)
                                          ? (function () { return arguments; }())
                                          : void 0 // else
      );
  });
  module.exports = empty;
  