elm-in-elm / compiler / Elm.Data.Project

The project information (corresponds to a single elm.json file). Holds more information though - the data in the type parameter holds all the parsed modules etc. - what every stage needs. See ProjectFields of the various AST stages.


type alias Project projectFields =
{ projectFields | elmJson : Elm.Project.Project
, mainFilePath : Elm.Data.FilePath.FilePath
, mainModuleName : Elm.Data.ModuleName.ModuleName
, sourceDirectory : Elm.Data.FilePath.FilePath 
}

Each AST stage has its own project fields - that's what the r parameter is. Eg. on the frontend we have program : Modules Frontend.Expr and on the backend we have graph : Backend.Graph.