@@ -1,58 +1,50 @@
1{-# OPTIONS_GHC -Wall #-}
1{-# OPTIONS_GHC -Wall #-}
2{-# LANGUAGE OverloadedStrings #-}
2{-# LANGUAGE OverloadedStrings #-}
3−module Elm.Compiler.Imports (defaults) where
3+module Elm.Compiler.Imports
5−import Data.Text (Text)
7−import qualified AST.Exposing as E
11+import qualified Elm.Name as N
8−import qualified AST.Module as Module
9−import qualified Reporting.Annotation as A
10−import qualified Reporting.Region as R
14−-- DEFAULT IMPORTS
15+-- IMPORTS
17−(==>) :: a -> b -> (a,b)
18+data Import =
21+ , _alias :: Maybe N.Name
22+ , _exposing :: Exposing
21−defaults :: [Module.DefaultImport]
26+data Exposing
23− [ "Basics" ==> Module.ImportMethod Nothing E.Open
28+ | Closed
24− , "Debug" ==> Module.ImportMethod Nothing E.closed
29+ | TypeOpen N.Name
25− , "List" ==> exposing [E.Lower "::"]
30+ | TypeClosed N.Name
26− , "Maybe" ==> exposing [E.Upper "Maybe" (Just E.Open)]
31+ | Operator N.Name
27− , "Result" ==> exposing [E.Upper "Result" (Just E.Open)]
28− , "String" ==> Module.ImportMethod Nothing E.closed
29− , "Tuple" ==> Module.ImportMethod Nothing E.closed
30− , "Platform" ==> exposing [closedType "Program"]
31− , "Platform.Cmd" ==> named "Cmd" [closedType "Cmd"]
32− , "Platform.Sub" ==> named "Sub" [closedType "Sub"]
36−exposing :: [E.Entry] -> Module.ImportMethod
38− Module.ImportMethod Nothing (explicit entries)
41−closedType :: Text -> E.Entry
46−named :: Text -> [E.Entry] -> Module.ImportMethod
35+-- DEFAULTS
48− Module.ImportMethod (Just name) (explicit entries)
51−explicit :: [E.Entry] -> E.Raw
38+defaults :: [Import]
52−explicit entries =
39+defaults =
53− E.Explicit (map (A.A nowhere) entries)
40+ [ Import "Basics" Nothing Open
54−
41+ , Import "Debug" Nothing Closed
55−
42+ , Import "List" Nothing (Operator "::")
56−nowhere :: R.Region
43+ , Import "Maybe" Nothing (TypeOpen "Maybe")
57−nowhere =
44+ , Import "Result" Nothing (TypeOpen "Result")
58− R.Region (R.Position 1 1) (R.Position 1 1)
45+ , Import "String" Nothing Closed
46+ , Import "Tuple" Nothing Closed
47+ , Import "Platform" Nothing (TypeClosed "Program")
48+ , Import "Platform.Cmd" (Just "Cmd") (TypeClosed "Cmd")
49+ , Import "Platform.Sub" (Just "Sub") (TypeClosed "Sub")