elm-in-elm / compiler / Elm.AST.Typed.Unwrapped

Version of Typed AST without the location info.

Handy for type inference tests, or when you don't need the location info.

Convert to it using the Elm.AST.Typed.unwrap.


type alias Expr =
( Expr_
, Elm.Data.Type.Type 
)


type Expr_
    = Int Basics.Int
    | Float Basics.Float
    | Char Char
    | String String
    | Bool Basics.Bool
    | Var ({ module_ : Elm.Data.ModuleName.ModuleName, name : Elm.Data.VarName.VarName })
    | Argument Elm.Data.VarName.VarName
    | Plus Expr Expr
    | Cons Expr Expr
    | Lambda ({ argument : Elm.Data.VarName.VarName, body : Expr })
    | Call ({ fn : Expr, argument : Expr })
    | If ({ test : Expr, then_ : Expr, else_ : Expr })
    | Let ({ bindings : Dict Elm.Data.VarName.VarName (Elm.Data.Binding.Binding Expr), body : Expr })
    | List (List Expr)
    | Unit
    | Tuple Expr Expr
    | Tuple3 Expr Expr Expr

Note this type recurses not on itself but on Expr (so that children also hold type information).