code: func NewHead(name Var, args ...*Term) *Head {
  	head := &Head{
  		Name: name,
  	}
  	if len(args) == 0 {
  		return head
  	}
  	head.Key = args[0]
  	if len(args) == 1 {
  		return head
  	}
  	head.Value = args[1]
  	return head
  }
docs: // NewHead returns a new Head object. If args are provided, the first will be
  // used for the key and the second will be used for the value.