on 2aa7dcd help sign in
elk/src/Transform/AddDefaultImports.hs
40 lines 965 B history raw
1module Transform.AddDefaultImports (add, defaultImports) where
3import qualified AST.Module as Module
4import qualified AST.Variable as Var
7-- DESCRIPTION OF DEFAULT IMPORTS
9(==>) :: a -> b -> (a,b)
10(==>) = (,)
13defaultImports :: [Module.DefaultImport]
14defaultImports =
15 [ ["Basics"] ==> Module.ImportMethod Nothing Var.openListing
16 , ["List"] ==> exposing [Var.Value "::"]
17 , ["Maybe"] ==> exposing [Var.Union "Maybe" Var.openListing]
18 , ["Result"] ==> exposing [Var.Union "Result" Var.openListing]
19 , ["Signal"] ==> exposing [Var.Alias "Signal"]
20 ]
23exposing :: [Var.Value] -> Module.ImportMethod
24exposing vars =
25 Module.ImportMethod Nothing (Var.listing vars)
28-- ADDING DEFAULT IMPORTS TO A MODULE
30add
31 :: Bool
32 -> [Module.UserImport]
33 -> ([Module.DefaultImport], [Module.UserImport])
34add needsDefaults imports =
35 (defaults, imports)
36 where
37 defaults =
38 if needsDefaults
39 then defaultImports
40 else []