on c19392f help sign in
elk/src/Canonicalize/Environment.hs
37 lines 1.0 kB history raw
1{-# OPTIONS_GHC -Wall #-}
2{-# LANGUAGE OverloadedStrings #-}
3module Canonicalize.Environment
4 ( Env.Result
5 , Env.Env
6 , create
7 , Env.findVar
8 , Env.findType
9 , Env.findPattern
10 , Env.findBinop
11 , Env.Binop(Env.Binop)
12 )
13 where
17import qualified Data.Map.Strict as Map
19import qualified AST.Expression.Valid as Valid
20import qualified AST.Module.Name as ModuleName
21import qualified Canonicalize.Environment.Foreign as Foreign
22import qualified Canonicalize.Environment.Internals as Env
23import qualified Canonicalize.Environment.Local as Local
24import qualified Elm.Interface as I
25import qualified Elm.Package as Package
29type ImportDict =
30 Map.Map ModuleName.Raw ModuleName.Canonical
33create :: Package.Name -> ImportDict -> I.Interfaces -> Valid.Module -> Env.Result Env.Env
34create pkg importDict interfaces module_@(Valid.Module name _ _ _ imports _ _ _ _ _) =
35 let home = ModuleName.Canonical pkg name in
36 Local.addDeclarations module_ =<<
37 Foreign.createInitialEnv home importDict interfaces imports