New(name {[,] name value}}
The first parameter must be the name of an abstract type variable and the remaining parameters (if any) are treated as attribute-value pairs which are used to initialize the data model for which the abstract value provides a unique identity. The abstract type variable is updated to include the value returned by the function.
For example, the following
p := New(Person, Name `Ralph', Age 25)
is short for
p := New(Entity)
Person +:= {p}
Name(p) := `Ralph'
Age(p) := 25
func new_Person(name : String, age : Integer) -> Person
result := new(Person)
Name(result) := name
Age(result) := age
endfor, shorter: func new_Person(name : String, age : Integer) -> Person
return new(Person, Name name, Age age)
endf
Such constructor functions are more flexible and provide a better interface than New.