domain.go
func (cgp *CGP) Domain(name string) *Domain {
	return &Domain{cgp: cgp, Name: name}
}
func (cgp *CGP) Domain(name string) *Domain {
	return &Domain{cgp: cgp, Name: name}
}
// Domain creates a domain type with the given name