code: func (n *EvalIf) Eval(ctx EvalContext) (interface{}, error) {
  	yes, err := n.If(ctx)
  	if err != nil {
  		return nil, err
  	}
  
  	if yes {
  		return EvalRaw(n.Then, ctx)
  	} else {
  		if n.Else != nil {
  			return EvalRaw(n.Else, ctx)
  		}
  	}
  
  	return nil, nil
  }
docs: // TODO: test