[racket-dev] [plt] Push #28213: master branch updated
On 2014-02-20 21:25:59 -0700, Neil Toronto wrote:
> You mean something like this would work?
>
> (define-type (Leaf1 X) (Pair (Leaf2 X) (Leaf2 X)))
> (define-type (Leaf2 X) (U X (Pair (Leaf1 X) (Leaf1 X))))
Yes, that should work. Here's an example interaction from my development
branch:
Welcome to Racket v5.90.0.10.
-> (let () (define-type (Leaf1 X) (Pair (Leaf2 X) (Leaf2 X)))
(define-type (Leaf2 X) (U X (Pair (Leaf1 X) (Leaf1 X))))
(define: x : (Leaf1 Integer) (cons 3 (cons (cons 5 5) (cons 6 5))))
x)
- : (Leaf1 Integer)
'(3 (5 . 5) 6 . 5)
Cheers,
Asumu