type Tuple<x,y> = Tuple { first: x, second: y };
== : (Tuple<x,y>, Tuple<x,y>) -> Bool
!= : (Tuple<x,y>, Tuple<x,y>) -> Bool
< : (Tuple<x,y>, Tuple<x,y>) -> Bool
<= : (Tuple<x,y>, Tuple<x,y>) -> Bool
> : (Tuple<x,y>, Tuple<x,y>) -> Bool
>= : (Tuple<x,y>, Tuple<x,y>) -> Bool
deep-hash : Tuple<x,y> -> U64
print : Tuple<x,y> -> Nil
.to-string : Tuple<x,y> -> String
type Tuple<x,y,z> = Tuple { first: x, second: y, third: z };
== : (Tuple<x,y,z>, Tuple<x,y,z>) -> Bool
!= : (Tuple<x,y,z>, Tuple<x,y,z>) -> Bool
< : (Tuple<x,y,z>, Tuple<x,y,z>) -> Bool
<= : (Tuple<x,y,z>, Tuple<x,y,z>) -> Bool
> : (Tuple<x,y,z>, Tuple<x,y,z>) -> Bool
>= : (Tuple<x,y,z>, Tuple<x,y,z>) -> Bool
deep-hash : Tuple<x,y,z> -> U64
print : Tuple<x,y,z> -> Nil
.to-string : Tuple<x,y,z> -> String
type Tuple<w,x,y,z> = Tuple { first: w, second: x, third: y, fourth: z };
etc.