4 , AdtInfo, CanonicalAdt
5 , SourceModule, ValidModule, CanonicalModule, Optimized
8 , Interface(..), toInterface
9 , UserImport, DefaultImport, ImportMethod(..)
13import qualified Data.Map as Map
15import qualified AST.Declaration as Decl
16import qualified AST.Expression.Canonical as Canonical
17import qualified AST.Expression.Optimized as Optimized
18import qualified AST.Module.Name as Name
19import qualified AST.Type as Type
20import qualified AST.Variable as Var
21import qualified Docs.AST as Docs
22import qualified Elm.Package as Package
23import qualified Elm.Compiler.Version as Compiler
24import qualified Reporting.Annotation as A
28-- HELPFUL TYPE ALIASES
32 Map.Map Name.Canonical Interface
36 Map.Map String Type.Canonical
40 Map.Map String ([String], Type.Canonical)
44 Map.Map String (AdtInfo String)
48 ( [String], [(v, [Type.Canonical])] )
52 ( Var.Canonical, AdtInfo Var.Canonical )
63 (Var.Listing (A.Located Var.Value))
70 ([DefaultImport], [UserImport])
71 (Var.Listing (A.Located Var.Value))
76 Module Docs.Centralized [Name.Raw] [Var.Value] (Body Canonical.Expr)
80 Module Docs.Centralized [Name.Raw] [Var.Value] (Body [Optimized.Def])
83data Module docs imports exports body =
85 { name :: Name.Canonical
87 , docs :: A.Located (Maybe docs)
98 , fixities :: [(Decl.Assoc, Int, String)]
109{-| Basic info needed to identify modules and determine dependencies. -}
113 , _docs :: A.Located (Maybe String)
114 , _exports :: Var.Listing (A.Located Var.Value)
115 , _imports :: imports
123type UserImport = A.Located (Name.Raw, ImportMethod)
126type DefaultImport = (Name.Raw, ImportMethod)
131 { alias :: Maybe String
132 , exposedVars :: !(Var.Listing Var.Value)
140{-| Key facts about a module, used when reading info from .elmi files. -}
143 { iVersion :: Package.Version
144 , iPackage :: Package.Name
145 , iExports :: [Var.Value]
147 , iImports :: [Name.Raw]
149 , iAliases :: Aliases
150 , iFixities :: [(Decl.Assoc, Int, String)]
155toInterface :: Package.Name -> Optimized -> Interface
156toInterface pkgName modul =
162 { iVersion = Compiler.version
164 , iExports = exports modul
165 , iTypes = types body'
166 , iImports = imports modul
167 , iAdts = datatypes body'
168 , iAliases = aliases body'
169 , iFixities = fixities body'
170 , iPorts = ports body'
174instance Binary Interface where
176 Interface <$> get <*> get <*> get <*> get <*> get <*> get <*> get <*> get <*> get
179 do put (iVersion modul)
186 put (iFixities modul)
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list