@@ -1,12 +1,13 @@
11module Elm.Compiler.Module
2− ( Interface, Interfaces, Name(Name)
2+ ( Interface, Interfaces
3+ , Name(Name)
34 , nameToPath
45 , nameToString, nameFromString
56 , hyphenate, dehyphenate
67 , defaultImports
78 , interfacePorts
89 , interfaceAliasedTypes
9− , ModuleName.Canonical(..)
10+ , CanonicalName, canonicalName
1011 )
1112 where
1213
@@ -24,9 +25,10 @@ import qualified AST.Module.Name as ModuleName
2425import qualified Elm.Compiler.Imports as Imports
2526import qualified Elm.Compiler.Type as Type
2627import qualified Elm.Compiler.Type.Extract as Extract
28+import qualified Elm.Package as Package
2729
2830
29−-- EXPOSED TYPES
31+-- INTERFACES
3032
3133type Interface = Module.Interface
3234
@@ -34,17 +36,6 @@ type Interface = Module.Interface
3436type Interfaces = Module.Interfaces
3537
3638
37−newtype Name = Name ModuleName.Raw
38− deriving (Eq, Ord)
39−
40−
41−defaultImports :: [Name]
42−defaultImports =
43− map (Name . fst) Imports.defaults
44−
45−
46−-- POKING AROUND INTERFACES
47−
4839interfacePorts :: Interface -> [String]
4940interfacePorts interface =
5041 Module.iPorts interface
@@ -55,6 +46,25 @@ interfaceAliasedTypes interface =
5546 Map.map Extract.toAliasedType (Module.iTypes interface)
5647
5748
49+-- NAMES
50+
51+newtype Name = Name ModuleName.Raw
52+ deriving (Eq, Ord)
53+
54+
55+type CanonicalName = ModuleName.Canonical
56+
57+
58+canonicalName :: Package.Name -> Name -> CanonicalName
59+canonicalName pkgName (Name name) =
60+ ModuleName.Canonical pkgName name
61+
62+
63+defaultImports :: [Name]
64+defaultImports =
65+ map (Name . fst) Imports.defaults
66+
67+
5868-- STRING CONVERSIONS for NAMES
5969
6070nameToPath :: Name -> FilePath