code: func NewGroup(e *GroupExpr) *Group {
  	g := &Group{
  		Equivalents:  list.New(),
  		Fingerprints: make(map[string]*list.Element),
  		FirstExpr:    make(map[Operand]*list.Element),
  		ImplMap:      make(map[string]Implementation),
  	}
  	g.Insert(e)
  	return g
  }
docs: // NewGroup creates a new Group.