Open
Description
While TR provides variadic type constructors like Values
, U
, and Sequenceof
, users cannot define their own using define-type
. Currently, define-type
treats ...
as a normal type argument. For instance, attempting to define a variadic My-Union
:
> (define-type (My-Union t ...) (U t ...))
> (ann 1 (My-Union 1 0))
- : Integer [more precisely: (U One Zero)]
1
> (ann 1 (My-Union 1))
string:1:7: Type Checker: Error in macro expansion -- wrong number of arguments to type constructor
type: #<syntax:string:1:8 My-Union>
expected: 2
given: 1
in: (My-Union 1)
[,bt for context]
> (ann 1 (My-Union 2 1 0))
string:1:7: Type Checker: Error in macro expansion -- wrong number of arguments to type constructor
type: #<syntax:string:1:8 My-Union>
expected: 2
given: 3
in: (My-Union 2 1 0)
[,bt for context]
Metadata
Metadata
Assignees
Labels
No labels