@@ -55,7 +55,7 @@ data Tag
5555 | Port
5656
5757
58−parseDependencies :: Package.Name -> Text -> Either Error (Tag, M.Raw, [M.Raw])
58+parseDependencies :: Package.Name -> Text -> Either Error (Tag, Maybe M.Raw, [M.Raw])
5959parseDependencies pkgName sourceCode =
6060 case Parse.run Parse.header sourceCode of
6161 Right header ->
@@ -65,22 +65,27 @@ parseDependencies pkgName sourceCode =
6565 Left (Error (A.map Error.Syntax err))
6666
6767
68−getDeps :: Package.Name -> Module.Header [Module.UserImport] -> (Tag, M.Raw, [M.Raw])
69−getDeps pkgName (Module.Header sourceTag name _ _ _ imports) =
68+getDeps :: Package.Name -> Module.Header [Module.UserImport] -> (Tag, Maybe M.Raw, [M.Raw])
69+getDeps pkgName (Module.Header maybeHeaderDecl imports) =
7070 let
71− tag =
72− case sourceTag of
73− Module.Normal -> Normal
74− Module.Port _ -> Port
75− Module.Effect _ -> Effect
76−
77− deps =
78− if pkgName == Package.core then
79− map (fst . A.drop) imports
80− else
81− map (fst . A.drop) imports ++ map fst Imports.defaults
71+ dependencies =
72+ if pkgName == Package.core
73+ then map (fst . A.drop) imports
74+ else map (fst . A.drop) imports ++ map fst Imports.defaults
8275 in
83− ( tag, name, deps )
76+ case maybeHeaderDecl of
77+ Nothing ->
78+ ( Normal, Nothing, dependencies )
79+
80+ Just (Module.HeaderDecl sourceTag name _ _ _) ->
81+ let
82+ tag =
83+ case sourceTag of
84+ Module.Normal -> Normal
85+ Module.Port _ -> Port
86+ Module.Effect _ -> Effect
87+ in
88+ ( tag, Just name, dependencies )
8489
8590
8691