code: func (g *Graph) Eval(e *Graph) (interface{}, error) {
  
  	switch e.ThisString() {
  	case TypePath:
  		return g.evalPath(e)
  	case TypeExpression:
  		return g.evalExpression(e)
  	}
  
  	// A complex object that is not a path or expression: return as is.
  	if e.Len() != 0 {
  		return e, nil
  	}
  
  	// A constant: return in its normalizad native form
  	// either: int64, float64, string, bool or []byte
  	return e.ThisScalar(), nil
  }
docs: // import "fmt"
  // Eval takes a parsed expression and evaluates it
  // in the context of the current graph.