The problem with using new is that you cannot pass arguments to it
Yeah, you can.
Yeah, you can.
The docs need updated then:
User defined types can optionally declare two special methods named New and Delete. Both methods must take no arguments, and any returned value is ignored