@@ -28,6 +28,8 @@ data Error
2828
2929 | InfixDuplicate String
3030 | TypeWithoutDefinition String
31+
32+ | DuplicateArgument String String
3133 | DuplicateFieldName String
3234 | DuplicateValueDeclaration String
3335 | DuplicateTypeDeclaration String
@@ -135,7 +137,7 @@ toReport _localizer err =
135137 "If you just wanted a normal module, change the keywords `effect module`\
136138 \ to `module` and you should be all set. If you want a proper effect module,\
137139 \ you need to specify your commands and/or subscriptions. Read more about this\
138− \ here: <TODO> (please forgive me if I forgot to fill this in!)"
140+ \ here: <http://guide.elm-lang.org/effect_managers/>"
139141 )
140142
141143 MissingManagerOnEffectModule name ->
@@ -147,7 +149,7 @@ toReport _localizer err =
147149 "There is a small set of top-level functions and values that must be defined\
148150 \ in any complete effect module. The best thing is probably to just read more\
149151 \ about effect modules here:\
150− \ <TODO> (please forgive me if I forgot to fill this in!)"
152+ \ <http://guide.elm-lang.org/effect_managers/>"
151153 )
152154
153155 UnexpectedPort name ->
@@ -184,6 +186,20 @@ toReport _localizer err =
184186 ++ " " ++ valueName ++ " = 42"
185187 )
186188
189+ DuplicateArgument funcName argName ->
190+ Report.report
191+ "DUPLICATE ARGUMENT"
192+ Nothing
193+ ( "The name `" ++ argName
194+ ++ "` is used more than once in the arguments of `"
195+ ++ funcName ++ "`."
196+ )
197+ ( Help.reflowParagraph $
198+ "Rename things until `" ++ argName ++ "` is used only once.\
199+ \ Otherwise how can we tell which one you want when you\
200+ \ say `" ++ argName ++ "` it in the body of your function?"
201+ )
202+
187203 DuplicateFieldName name ->
188204 Report.report
189205 "DUPLICATE FIELD"
@@ -282,7 +298,7 @@ unboundTypeVars declKind typeName givenVars unboundVars =
282298 , Help.reflowParagraph $
283299 "Here's why. Imagine one `" ++ typeName ++ "` where `" ++ head unboundVars ++
284300 "` is an Int and another where it is a Bool. When we explicitly list the type\
285− \ variables, type checker can see that they are actually different types."
301+ \ variables, the type checker can see that they are actually different types."
286302 ]
287303 )
288304