@@ -55,7 +55,7 @@ data Tag
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])
59parseDependencies pkgName sourceCode =
59parseDependencies pkgName sourceCode =
60 case Parse.run Parse.header sourceCode of
60 case Parse.run Parse.header sourceCode of
61 Right header ->
61 Right header ->
@@ -65,22 +65,27 @@ parseDependencies pkgName sourceCode =
65 Left (Error (A.map Error.Syntax err))
65 Left (Error (A.map Error.Syntax err))
68−getDeps :: Package.Name -> Module.Header [Module.UserImport] -> (Tag, M.Raw, [M.Raw])
68+getDeps :: Package.Name -> Module.Header [Module.UserImport] -> (Tag, Maybe M.Raw, [M.Raw])
69−getDeps pkgName (Module.Header sourceTag name _ _ _ imports) =
69+getDeps pkgName (Module.Header maybeHeaderDecl imports) =
71− tag =
71+ dependencies =
73− Module.Normal -> Normal
74− Module.Port _ -> Port
75− Module.Effect _ -> Effect
78− if pkgName == Package.core then
72+ if pkgName == Package.core
79− map (fst . A.drop) imports
73+ then map (fst . A.drop) imports
81− map (fst . A.drop) imports ++ map fst Imports.defaults
74+ else map (fst . A.drop) imports ++ map fst Imports.defaults
76+ case maybeHeaderDecl of
78+ ( Normal, Nothing, dependencies )
80+ Just (Module.HeaderDecl sourceTag name _ _ _) ->
84+ Module.Normal -> Normal
85+ Module.Port _ -> Port
86+ Module.Effect _ -> Effect
83− ( tag, name, deps )
88+ ( tag, Just name, dependencies )