code: function unsubscribe (state, tokens, suspend) {
      tokens = typeof tokens === 'string' ? tokens.split(/,\s*/) : tokens;
      tokens = !tokens.length ? [tokens] : tokens;
  
      var result = curryMap(
        {topics: state._topics, suspend: suspend}, removeSubscriber, tokens
      );
  
      return result.length === 1 ? result[0] : result;
    }
docs: `Arbiter.unsubscribe` removes the subscribers associated with a token or
  a topic. This prevents them from being notified when a publication
  occurs. By default these cannot be recovered, however this also allows
  us to temporarily suspend them instead.
  
  @function unsubscribe
  @memberof Arbiter
  
  @param {Token|Topic} token Removes the subscription associated with the
  provided token. If a topic is provided, then this removes all
  subscribers and their descendants are removed.
  @param {Boolean} [suspend=false] If this true, then the subscriptions
  are only suspended. This means that they will not be notified of any
  publications, but they can be re-enabled with [Arbiter.resubscribe].
  @return {Boolean} Returns false if the token's subscription cannot be
  located and true otherwise. This returns an array if multiple tokens
  or topics used.
  
  @example
  
  Arbiter.subscribe('a', function a () {});
  Arbiter.subscribe('a.b', function ab () {});
  var bToken = Arbiter.subscribe('b', function b () {});
  Arbiter.subscribe('c', function c () {});
  Arbiter.unsubscribe(bToken); // 'a', 'a.b', 'c' remain
  Arbiter.unsubscribe('a'); // Only 'c' remains
  Arbiter.unsubscribe(''); // Removes all subscriptions