@@ -1,104 +0,0 @@
1−{-# OPTIONS_GHC -Wall #-}
2−{-# LANGUAGE OverloadedStrings #-}
3−module Elm.Compiler.Objects.Internal
16−import Prelude hiding (lookup)
17−import Control.Arrow (first)
18−import Control.Monad (liftM2)
20−import qualified Data.Map as Map
21−import qualified Data.Text as Text
23−import qualified AST.Expression.Optimized as Opt
24−import qualified AST.Kernel as Kernel
25−import qualified AST.Module.Name as ModuleName
26−import qualified AST.Module as Module
27−import qualified AST.Variable as Var
36− { _decls :: Map.Map Var.Global Opt.Decl
37− , _kernels :: Map.Map ModuleName.Raw Kernel.Data
42−-- OBJECT GRAPH HELPERS
45−fromModule :: Module.Optimized -> Graph
46−fromModule (Module.Module home info) =
49− Map.fromList $ map (first (Var.Global home)) (Module.program info)
51− Graph decls Map.empty
54−union :: Graph -> Graph -> Graph
55−union (Graph decls1 kernels1) (Graph decls2 kernels2) =
56− Graph (Map.union decls1 decls2) (Map.union kernels1 kernels2)
59−unions :: [Graph] -> Graph
62− (Map.unions (map _decls graphs))
63− (Map.unions (map _kernels graphs))
71− = Mains [ModuleName.Canonical]
72− | Value ModuleName.Canonical Text.Text
75−mains :: [ModuleName.Canonical] -> Roots
80−value :: ModuleName.Canonical -> String -> Roots
82− Value home (Text.pack name)
85−toGlobals :: Roots -> [Var.Global]
89− map (\home -> Var.Global home "main") modules
92− [ Var.Global home name ]
99−instance Binary Graph where
100− put (Graph decls kernels) =
101− put decls >> put kernels
104− liftM2 Graph get get