
             | VecFloat (Vec f64)

data Scalar  = Nil
             | Any
             | List (a: AST)
             | Dict (a: AST)
             | Call (a b: AST)
             | Assign (a b: AST)
             | Cond (a b c: AST)
             | Lambda (otree: Option NodeId) (a b: AST)
             | Yield (c: Context)
             | Value (v: Value)
             | Name (s: String)

data AST     = Atom (a: Scalar)
             | Vector (a: Vec AST)

data Lazy    = Defer (otree: NodeId) (a: AST) (cont: Cont)
 