@@ -4,8 +4,8 @@ module Elm.Compiler
44 , parseDependencies, Tag(..)
55 , compile, Context(..), Result(..)
66 , Localizer, dummyLocalizer
7− , Error, errorToString, errorToJson, printError
8− , Warning, warningToString, warningToJson, printWarning
7+ , Error, errorToDoc, errorToJson
8+ , Warning, warningToDoc, warningToJson
99 )
1010 where
1111
@@ -13,7 +13,7 @@ import qualified Data.Aeson as Json
1313import qualified Data.Map as Map
1414import qualified Data.Text.Lazy as LazyText
1515import Data.Text (Text)
16−import System.IO (Handle)
16+import Text.PrettyPrint.ANSI.Leijen (Doc)
1717
1818import qualified AST.Module as Module
1919import qualified AST.Module.Name as ModuleName
@@ -55,18 +55,18 @@ data Tag
5555 | Port
5656
5757
58−parseDependencies :: Maybe Package.Name -> Text -> Either Error (Tag, M.Raw, [M.Raw])
59−parseDependencies maybePkgName sourceCode =
58+parseDependencies :: Package.Name -> Text -> Either Error (Tag, M.Raw, [M.Raw])
59+parseDependencies pkgName sourceCode =
6060 case Parse.run Parse.header sourceCode of
6161 Right header ->
62− Right $ getDeps maybePkgName header
62+ Right $ getDeps pkgName header
6363
6464 Left err ->
6565 Left (Error (A.map Error.Syntax err))
6666
6767
68−getDeps :: Maybe Package.Name -> Module.Header [Module.UserImport] -> (Tag, M.Raw, [M.Raw])
69−getDeps maybePkgName (Module.Header sourceTag name _ _ _ imports) =
68+getDeps :: Package.Name -> Module.Header [Module.UserImport] -> (Tag, M.Raw, [M.Raw])
69+getDeps pkgName (Module.Header sourceTag name _ _ _ imports) =
7070 let
7171 tag =
7272 case sourceTag of
@@ -75,7 +75,7 @@ getDeps maybePkgName (Module.Header sourceTag name _ _ _ imports) =
7575 Module.Effect _ -> Effect
7676
7777 deps =
78− if maybePkgName == Just Package.core then
78+ if pkgName == Package.core then
7979 map (fst . A.drop) imports
8080 else
8181 map (fst . A.drop) imports ++ map fst Imports.defaults
@@ -159,14 +159,9 @@ newtype Error =
159159 Error (A.Located Error.Error)
160160
161161
162−errorToString :: Localizer -> String -> Text -> Error -> String
163−errorToString (Localizer localizer) location source (Error (A.A region err)) =
164− Report.toString location region (Error.toReport localizer err) source
165−
166−
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
162+errorToDoc :: Localizer -> String -> Text -> Error -> Doc
163+errorToDoc (Localizer localizer) location source (Error (A.A region err)) =
164+ Report.toDoc location region (Error.toReport localizer err) source
170165
171166
172167errorToJson :: Localizer -> String -> Error -> Json.Value
@@ -182,14 +177,9 @@ newtype Warning =
182177 Warning (A.Located Warning.Warning)
183178
184179
185−warningToString :: Localizer -> String -> Text -> Warning -> String
186−warningToString (Localizer localizer) location source (Warning (A.A region wrn)) =
187− Report.toString location region (Warning.toReport localizer wrn) source
188−
189−
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
180+warningToDoc :: Localizer -> String -> Text -> Warning -> Doc
181+warningToDoc (Localizer localizer) location source (Warning (A.A region wrn)) =
182+ Report.toDoc location region (Warning.toReport localizer wrn) source
193183
194184
195185warningToJson :: Localizer -> String -> Warning -> Json.Value