code: func (obj *object) Iter(f func(*Term, *Term) error) error {
  	for i := range obj.keys {
  		k := obj.keys[i]
  		node := obj.get(k)
  		if node == nil {
  			panic("corrupt object")
  		}
  		if err := f(k, node.value); err != nil {
  			return err
  		}
  	}
  	return nil
  }
docs: // Iter calls the function f for each key-value pair in the object. If f
  // returns an error, iteration stops and the error is returned.