Handy for type inference fuzzers, or when you don't need the location info.
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