#lang plait
(define-type FLANG
[Num (val : Number)]
[Add (l : FLANG) (r : FLANG)]
[Sub (l : FLANG) (r : FLANG)]
[Mul (l : FLANG) (r : FLANG)]
[Div (l : FLANG) (r : FLANG)]
[Id (name : Symbol)]
[Let1 (id : Symbol)
(named-expr : FLANG)
(bound-body : FLANG)]
[Lam (param : Symbol)
(body : FLANG)]
[Call (lam : FLANG)
(val : FLANG)]) ; first type!