2 ( Header(..), Module(..)
4 , Source, SourceInfo(..), SourceTag(..), SourceSettings, emptySettings
5 , Valid, ValidInfo(..), ValidEffects(..)
6 , Canonical, Optimized, Info(..)
8 , UserImport, DefaultImport, ImportMethod(..)
12 , Unions, UnionInfo, CanonicalUnion
14 , Interfaces, Interface(..), toInterface
19import qualified Data.Map as Map
21import qualified AST.Declaration as Decl
22import qualified AST.Expression.Canonical as Canonical
23import qualified AST.Expression.Optimized as Optimized
24import qualified AST.Module.Name as Name
25import qualified AST.Type as Type
26import qualified AST.Variable as Var
27import qualified Docs.AST as Docs
28import qualified Elm.Package as Package
29import qualified Elm.Compiler.Version as Compiler
30import qualified Reporting.Annotation as A
37{-| Basic info needed to identify modules and determine dependencies. -}
42 , _exports :: Var.Listing (A.Located Var.Value)
43 , _settings :: SourceSettings
44 , _docs :: A.Located (Maybe String)
55 { name :: Name.Canonical
68 , srcSettings :: SourceSettings
69 , srcDocs :: A.Located (Maybe String)
70 , srcExports :: Var.Listing (A.Located Var.Value)
71 , srcImports :: [UserImport]
72 , srcDecls :: [Decl.Source]
83 A.Located [(A.Located String, A.Located String)]
86emptySettings :: SourceSettings
88 A.A (error "region of empty settings should not be needed") []
97 { validDocs :: A.Located (Maybe String)
98 , validExports :: Var.Listing (A.Located Var.Value)
99 , validImports :: ([DefaultImport], [UserImport])
100 , validDecls :: [Decl.Valid]
101 , validEffects :: ValidEffects
107 | ValidEffect (Maybe (A.Located String)) (Maybe (A.Located String))
112 Module (Info Canonical.Expr)
116 Module (Info [Optimized.Def])
123type UserImport = A.Located (Name.Raw, ImportMethod)
126type DefaultImport = (Name.Raw, ImportMethod)
131 { alias :: Maybe String
132 , exposedVars :: !(Var.Listing Var.Value)
137-- LATE PHASE MODULE INFORMATION
142 { docs :: A.Located (Maybe Docs.Centralized)
143 , exports :: [Var.Value]
144 , imports :: [Name.Raw]
147 , fixities :: [(Decl.Assoc, Int, String)]
154 Map.Map String Type.Canonical
158 Map.Map String ([String], Type.Canonical)
162 Map.Map String (UnionInfo String)
166 ( [String], [(v, [Type.Canonical])] )
170 ( Var.Canonical, UnionInfo Var.Canonical )
178 Map.Map Name.Canonical Interface
181{-| Key facts about a module, used when reading info from .elmi files. -}
184 { iVersion :: Package.Version
185 , iPackage :: Package.Name
186 , iExports :: [Var.Value]
187 , iImports :: [Name.Raw]
190 , iAliases :: Aliases
191 , iFixities :: [(Decl.Assoc, Int, String)]
195toInterface :: Package.Name -> Optimized -> Interface
196toInterface pkgName modul =
202 { iVersion = Compiler.version
204 , iExports = exports myInfo
205 , iImports = imports myInfo
206 , iTypes = types myInfo
207 , iUnions = unions myInfo
208 , iAliases = aliases myInfo
209 , iFixities = fixities myInfo
213instance Binary Interface where
215 Interface <$> get <*> get <*> get <*> get <*> get <*> get <*> get <*> get
218 do put (iVersion modul)
225 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