data Type0 = None_t | Int_t | Float_t | Double_t | Char_t | Enum_t | List_t | Fn_t | Karma_t | Type_t
data Value = None
| Int !Integer
| Float !Float
| Double !Double
| Char !Char
| Enum String
| List [Value]
| Fn ([(String {-ident-}, Maybe Type0 {-param type-}, Maybe Value {-def val-})] -> Value)
| Karma (IO Value)
| Type0 Type0