Canonical AST is stripped of useless information, and generally tries to make life a bit more easier for compiler developers.
{ modules : Dict Elm.Data.ModuleName.ModuleName (Elm.Data.Module.Module LocatedExpr) }
"What does this compiler stage need to store abotut the whole project?
(See Elm.Data.Project
.)
In this case, a dict of all the compiled Elm modules that hold canonical AST expressions.
Elm.Data.Located.Located Expr
The main type of this module. Expression with location metadata.
Note the underlying Expr
custom type recurses on this LocatedExpr
type,
so that the children also each have their location metadata.
If you want expressions without location metadata, look at unwrap
.
Differs from Frontend.Expr by:
unwrap : LocatedExpr -> Unwrapped.Expr
Discard the location metadata.
fromUnwrapped : Unwrapped.Expr -> LocatedExpr
Adds dummy locations to the Unwrapped.Expr.