@@ -1,12 +1,13 @@
1module Elm.Compiler.Module
1module Elm.Compiler.Module
2− ( Interface, Interfaces, Name(Name)
2+ ( Interface, Interfaces
3 , nameToPath
4 , nameToPath
4 , nameToString, nameFromString
5 , nameToString, nameFromString
5 , hyphenate, dehyphenate
6 , hyphenate, dehyphenate
6 , defaultImports
7 , defaultImports
7 , interfacePorts
8 , interfacePorts
8 , interfaceAliasedTypes
9 , interfaceAliasedTypes
9− , ModuleName.Canonical(..)
10+ , CanonicalName, canonicalName
@@ -24,9 +25,10 @@ import qualified AST.Module.Name as ModuleName
24import qualified Elm.Compiler.Imports as Imports
25import qualified Elm.Compiler.Imports as Imports
25import qualified Elm.Compiler.Type as Type
26import qualified Elm.Compiler.Type as Type
26import qualified Elm.Compiler.Type.Extract as Extract
27import qualified Elm.Compiler.Type.Extract as Extract
28+import qualified Elm.Package as Package
29−-- EXPOSED TYPES
31+-- INTERFACES
31type Interface = Module.Interface
33type Interface = Module.Interface
@@ -34,17 +36,6 @@ type Interface = Module.Interface
34type Interfaces = Module.Interfaces
36type Interfaces = Module.Interfaces
37−newtype Name = Name ModuleName.Raw
41−defaultImports :: [Name]
43− map (Name . fst) Imports.defaults
46−-- POKING AROUND INTERFACES
48interfacePorts :: Interface -> [String]
39interfacePorts :: Interface -> [String]
49interfacePorts interface =
40interfacePorts interface =
50 Module.iPorts interface
41 Module.iPorts interface
@@ -55,6 +46,25 @@ interfaceAliasedTypes interface =
55 Map.map Extract.toAliasedType (Module.iTypes interface)
46 Map.map Extract.toAliasedType (Module.iTypes interface)
51+newtype Name = Name ModuleName.Raw
55+type CanonicalName = ModuleName.Canonical
58+canonicalName :: Package.Name -> Name -> CanonicalName
59+canonicalName pkgName (Name name) =
60+ ModuleName.Canonical pkgName name
63+defaultImports :: [Name]
65+ map (Name . fst) Imports.defaults
58-- STRING CONVERSIONS for NAMES
68-- STRING CONVERSIONS for NAMES
60nameToPath :: Name -> FilePath
70nameToPath :: Name -> FilePath