text: /**
   * Contains `Applicative`'s `Apply` class (class that contains `ap` (a.k.a. `pure`) method).
   * Created by edlc on 12/9/16.
   * @memberOf module:functor
   */
  
  import {toFunction} from 'fjl';
  import Functor from './Functor';
  
  /**
   * Apply construct.
   * @class module:functor.Apply
   * @param fn {Function|*}
   * @property value {*}
   * @extends module:functor.Functor
   */
  export default class Apply extends Functor {
      /**
       * Applicative apply operation - applies contained function over passed in functor.
       * @method module:functor.Apply#ap
       * @param x {Functor}
       * @returns {Apply}
       */
      ap (x) {
          return x.map(toFunction(this.valueOf()));
      }
  }
  