code: func ParseRuleFromCallExpr(module *Module, terms []*Term) (*Rule, error) {
  
  	if len(terms) <= 1 {
  		return nil, fmt.Errorf("rule argument list must take at least one argument")
  	}
  
  	loc := terms[0].Location
  	args := terms[1:]
  	value := BooleanTerm(true).SetLocation(loc)
  
  	rule := &Rule{
  		Location: loc,
  		Head: &Head{
  			Location: loc,
  			Name:     Var(terms[0].String()),
  			Args:     args,
  			Value:    value,
  		},
  		Module: module,
  		Body:   NewBody(NewExpr(BooleanTerm(true).SetLocation(loc)).SetLocation(loc)),
  	}
  	return rule, nil
  }
docs: // ParseRuleFromCallExpr returns a rule if the terms can be interpreted as a
  // function returning true or some value (e.g., f(x) => f(x) = true { true }).