#lang plait
(define-type AE
[Num (n : Number)]
[Add (l : AE) (r : AE)]
[Sub (l : AE) (r : AE)])
(test (eval (parse-sx `3)) 3)
(test (eval (parse-sx `{+ 3 4})) 7)
(test (eval (parse-sx `{+ {- 3 4} 7})) 6)
#lang plait
(define-type AE
[Num (n : Number)]
[Add (l : AE) (r : AE)]
[Sub (l : AE) (r : AE)])
(test (eval (parse-sx `3)) 3)
(test (eval (parse-sx `{+ 3 4})) 7)
(test (eval (parse-sx `{+ {- 3 4} 7})) 6)