@@ -165,16 +165,16 @@ toReport source localizer err =
167 AmbiguousVar region maybePrefix name possibleHomes ->
167 AmbiguousVar region maybePrefix name possibleHomes ->
168− error "TODO" region maybePrefix name possibleHomes
168+ ambiguousName source region maybePrefix name possibleHomes "name"
170 AmbiguousType region maybePrefix name possibleHomes ->
170 AmbiguousType region maybePrefix name possibleHomes ->
171− error "TODO" region maybePrefix name possibleHomes
171+ ambiguousName source region maybePrefix name possibleHomes "type"
173 AmbiguousCtor region maybePrefix name possibleHomes ->
173 AmbiguousCtor region maybePrefix name possibleHomes ->
174− error "TODO" region maybePrefix name possibleHomes
174+ ambiguousName source region maybePrefix name possibleHomes "constructor"
176 AmbiguousBinop region name possibleHomes ->
176 AmbiguousBinop region name possibleHomes ->
177− error "TODO" region name possibleHomes
177+ ambiguousName source region Nothing name possibleHomes "operator"
179 BadArity region badArityContext name expected actual ->
179 BadArity region badArityContext name expected actual ->
@@ -806,6 +806,36 @@ nameClash source r1 r2 messageThatEndsWithPunctuation =
812+ambiguousName :: Code.Source -> R.Region -> Maybe N.Name -> N.Name -> [ModuleName.Canonical] -> String -> Report.Report
813+ambiguousName source region maybePrefix name possibleHomes thing =
816+ maybe N.toString toQualString maybePrefix name
818+ homeToYellowDoc (ModuleName.Canonical _ home) =
819+ H.dullyellow (H.nameToDoc home)
822+ if length possibleHomes == 2 then "both" else "all"
824+ Report.Report "AMBIGUOUS NAME" region [] $
825+ Report.toCodeSnippet source region Nothing
827+ H.reflow $ "This usage of `" ++ givenName ++ "` is ambiguous."
830+ [ H.reflow $ "The following modules " ++ bothOrAll ++ " export this " ++ thing ++ ":"
831+ , H.indent 4 $ H.vcat $ map homeToYellowDoc possibleHomes
832+ , H.reflowLink "Read" "imports" "to learn how to clarify which one you want."
809-- NOT FOUND
839-- NOT FOUND