@@ -4,8 +4,8 @@ module Elm.Compiler
4 , parseDependencies, Tag(..)
4 , parseDependencies, Tag(..)
5 , compile, Context(..), Result(..)
5 , compile, Context(..), Result(..)
6 , Localizer, dummyLocalizer
6 , Localizer, dummyLocalizer
7− , Error, errorToString, errorToJson, printError
7+ , Error, errorToDoc, errorToJson
8− , Warning, warningToString, warningToJson, printWarning
8+ , Warning, warningToDoc, warningToJson
@@ -13,7 +13,7 @@ import qualified Data.Aeson as Json
13import qualified Data.Map as Map
13import qualified Data.Map as Map
14import qualified Data.Text.Lazy as LazyText
14import qualified Data.Text.Lazy as LazyText
15import Data.Text (Text)
15import Data.Text (Text)
16−import System.IO (Handle)
16+import Text.PrettyPrint.ANSI.Leijen (Doc)
18import qualified AST.Module as Module
18import qualified AST.Module as Module
19import qualified AST.Module.Name as ModuleName
19import qualified AST.Module.Name as ModuleName
@@ -55,18 +55,18 @@ data Tag
58−parseDependencies :: Maybe Package.Name -> Text -> Either Error (Tag, M.Raw, [M.Raw])
58+parseDependencies :: Package.Name -> Text -> Either Error (Tag, M.Raw, [M.Raw])
59−parseDependencies maybePkgName sourceCode =
59+parseDependencies pkgName sourceCode =
60 case Parse.run Parse.header sourceCode of
60 case Parse.run Parse.header sourceCode of
61 Right header ->
61 Right header ->
62− Right $ getDeps maybePkgName header
62+ Right $ getDeps pkgName header
64 Left err ->
64 Left err ->
65 Left (Error (A.map Error.Syntax err))
65 Left (Error (A.map Error.Syntax err))
68−getDeps :: Maybe Package.Name -> Module.Header [Module.UserImport] -> (Tag, M.Raw, [M.Raw])
68+getDeps :: Package.Name -> Module.Header [Module.UserImport] -> (Tag, M.Raw, [M.Raw])
69−getDeps maybePkgName (Module.Header sourceTag name _ _ _ imports) =
69+getDeps pkgName (Module.Header sourceTag name _ _ _ imports) =
72 case sourceTag of
72 case sourceTag of
@@ -75,7 +75,7 @@ getDeps maybePkgName (Module.Header sourceTag name _ _ _ imports) =
75 Module.Effect _ -> Effect
75 Module.Effect _ -> Effect
78− if maybePkgName == Just Package.core then
78+ if pkgName == Package.core then
79 map (fst . A.drop) imports
79 map (fst . A.drop) imports
81 map (fst . A.drop) imports ++ map fst Imports.defaults
81 map (fst . A.drop) imports ++ map fst Imports.defaults
@@ -159,14 +159,9 @@ newtype Error =
159 Error (A.Located Error.Error)
159 Error (A.Located Error.Error)
162−errorToString :: Localizer -> String -> Text -> Error -> String
162+errorToDoc :: Localizer -> String -> Text -> Error -> Doc
163−errorToString (Localizer localizer) location source (Error (A.A region err)) =
163+errorToDoc (Localizer localizer) location source (Error (A.A region err)) =
164− Report.toString location region (Error.toReport localizer err) source
167−printError :: Handle -> Localizer -> String -> Text -> Error -> IO ()
168−printError handle (Localizer localizer) location source (Error (A.A region err)) =
169− Report.toHandle handle location region (Error.toReport localizer err) source
164+ Report.toDoc location region (Error.toReport localizer err) source
172errorToJson :: Localizer -> String -> Error -> Json.Value
167errorToJson :: Localizer -> String -> Error -> Json.Value
@@ -182,14 +177,9 @@ newtype Warning =
182 Warning (A.Located Warning.Warning)
177 Warning (A.Located Warning.Warning)
185−warningToString :: Localizer -> String -> Text -> Warning -> String
180+warningToDoc :: Localizer -> String -> Text -> Warning -> Doc
186−warningToString (Localizer localizer) location source (Warning (A.A region wrn)) =
181+warningToDoc (Localizer localizer) location source (Warning (A.A region wrn)) =
187− Report.toString location region (Warning.toReport localizer wrn) source
190−printWarning :: Handle -> Localizer -> String -> Text -> Warning -> IO ()
191−printWarning handle (Localizer localizer) location source (Warning (A.A region wrn)) =
192− Report.toHandle handle location region (Warning.toReport localizer wrn) source
182+ Report.toDoc location region (Warning.toReport localizer wrn) source
195warningToJson :: Localizer -> String -> Warning -> Json.Value
185warningToJson :: Localizer -> String -> Warning -> Json.Value