code: func (rule *Rule) Copy() *Rule {
  	cpy := *rule
  	cpy.Head = rule.Head.Copy()
  	cpy.Body = rule.Body.Copy()
  	if cpy.Else != nil {
  		cpy.Else = rule.Else.Copy()
  	}
  	return &cpy
  }
docs: // Copy returns a deep copy of rule.