(case (foo 42 12)
[(foo 20 x) 0]
[(foo 42 x) x]
+ [(foo y x) 0]
[(bar x) 0]))
12)
[bar 12]))
12)
; todo: make this error for incomplete pattern match
-(test-exception '((data A [foo Int] [bar Int B])
+(test-exception
+ (codegen '((data A [foo Int] [bar Int B])
(data B [baz Int])
(let ([val (bar 42 (baz 12))])
(case val
[(foo 42) 0]
[(bar 32 (baz 12)) 1]
[(bar 42 (baz x)) x]
- [(foo x) 2]))))
+ [(foo x) 2])))))