code: function get(autocrat, address, finder){
    var immutable;
  
    if(address) {
      immutable = getStateByAddress(autocrat, address, finder);
    } else {
      immutable = autocrat.current;
    }
  
    return {
      immutable: function() { return immutable; },
      value: function() {
        if(immutable !== null && typeof immutable === 'object') return immutable.toJS();
        return immutable;
      }
    };
  }
docs: Get a reference to a state node, either in immutable or plain JS form.
  The immutable forms, if not scalar, are instances of an ImmutableJS type and
  can therefore be manipulated with any of the methods from
  [its API](http://facebook.github.io/immutable-js/docs/#/).
  
  @method get
  @memberof Autocrat
  @instance
  @public
  @param {string} address A dot-separated path indicating a nested state object node
  @param {function} finder A predicate function used to match an item in a state
  object node if the address refers to a collection
  @example
  // Get an immutable representation of the global state
  // The object is an Immutable.Map. See http://facebook.github.io/immutable-js/docs/#/Map
  app.state.get().immutable();
  
  // Get a plain JS (mutable) object representation of the global state
  app.state.get().value();
  
  // Get an immutable representation of the view.page.name state value
  app.state.get('view.page.name').immutable();
  
  // Get a plain JS representation of the view.page.name state value
  app.state.get('view.page.name').value();
  
  // Get a plain JS representation of member of a collection in state
  app.state.get('persisted.people', lastNameIs('Jones')).value();