The form (define-constructor name modes ...) adds a new type constructor to the type language. The arguments mode ... are all booleans, each specifying whether the corresponding field in the constructor is mutable.