@@ -1,16 +1,12 @@
1{-# OPTIONS_GHC -W #-}
1{-# OPTIONS_GHC -W #-}
2{-# LANGUAGE FlexibleContexts #-}
2{-# LANGUAGE FlexibleContexts #-}
3−module Metadata.Prelude (interfaces, add) where
3+module Metadata.Prelude (add) where
5−import Control.Monad.Error (MonadError, throwError, MonadIO, liftIO)
6import qualified Data.Map as Map
5import qualified Data.Map as Map
7import qualified Data.Set as Set
6import qualified Data.Set as Set
9import qualified AST.Module as Module
8import qualified AST.Module as Module
10import qualified AST.Variable as Var
9import qualified AST.Variable as Var
11−import qualified Build.Artifact as Artifact
12−import qualified Build.Utils as Utils
13−import qualified Elm.Compiler.Version as Compiler
16-- DEFINITION OF THE PRELUDE
12-- DEFINITION OF THE PRELUDE
@@ -97,35 +93,3 @@ addImport (name, method) importDict =
97 Var.Listing
93 Var.Listing
98 (Set.toList (Set.fromList (explicits1 ++ explicits2)))
94 (Set.toList (Set.fromList (explicits1 ++ explicits2)))
99 (open1 || open2)
95 (open1 || open2)
102−-- EXTRACT INTERFACES FROM STATIC FILE
104−interfaces :: (MonadIO m, MonadError String m) => m Module.Interfaces
106− do filePath <- liftIO (Utils.getDataFile "interfaces.data")
107− interfaces <- mapM (isValid filePath) =<< Artifact.read filePath
109− [] -> throwError "No interfaces found in serialized Prelude!"
110− _ -> return (Map.fromList interfaces)
114− :: (MonadError String m)
116− -> (Module.Name, Module.Interface)
117− -> m (Module.Name, Module.Interface)
118−isValid filePath (name, interface) =
119− if version == Compiler.version
120− then return (name, interface)
121− else throwError badVersion
123− version = Module.iVersion interface
127− [ "Error reading build artifact: ", filePath, "\n"
128− , " It was generated by version ", version, " of the compiler,\n"
129− , " but you are using version ", Compiler.version, "\n"
130− , " Please remove the file and try again.\n"