Hello. The compiler gives here correct message. Because your messageParam can 
be anything of type Message. Lodash(_) in Elm means the same. So it means 
anything with type Message. That’s why you have two same branches. And Elm 
compiler tells you about it.

Best,
Andrey

> On 10 Jul 2017, at 20:11, Patrick Stubner <pstub...@gmail.com> wrote:
> 
> I haven't really used Elm that much, but you may want something like this:
> 
> 
> module Main exposing (..)
> 
> import Html exposing (Html, text, div)
> 
> type Message = Good | Bad | ManyOthers
> 
> type alias Node = { message : Message }
> 
> trymatch : Node -> Message -> Bool
> trymatch node messageParam =
>     node.message == messageParam
> 
> evalTrue = trymatch { message = Good } Good
> evalFalse = trymatch { message = Good } Bad
> 
> main : Html a
> main =
>     div []
>     [ text (toString evalTrue)
>     , text " / "
>     , text (toString evalFalse)]
> 
> 
> You can try it out in https://ellie-app.com
> 
> P@
> 
> 
> Am Sonntag, 9. Juli 2017 22:55:27 UTC+2 schrieb jadski:
> Hi, I am getting a compiler error that does not make sense to me - can anyone 
> help to explain why this fails to compile?
> 
> The following code:
> 
> <code>
> type Message = Good | Bad | ManyOthers
> 
> type alias Node = { message : Message }
> 
> trymatch : Node -> Message -> Bool
> trymatch node messageParam =
>     case node.message of
>         messageParam ->
>             True
>         _ ->
>             False
> 
> evalTrue = trymatch { message = Good } Good
> evalFalse = trymatch { message = Good } Bad
> </code>
> 
> Generates this compilation error:
> 
> <code>
> The following pattern is redundant. Remove it.
> 
> 10|         _ ->
>             ^
> Any value with this shape will be handled by a previous pattern.
> </code>
> 
> However node.message and messageParam can clearly be different, as in 
> evalFalse.
> 
> Hence the message "Any value with this shape will be handled by a previous 
> pattern." appears incorrect, and is confusing me.
> 
> A helpful slacker suggested using "if node.message == messageParam then", 
> which compiles, but doesn't clarify what's going wrong here.
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Elm Discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to elm-discuss+unsubscr...@googlegroups.com 
> <mailto:elm-discuss+unsubscr...@googlegroups.com>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.

-- 
You received this message because you are subscribed to the Google Groups "Elm 
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elm-discuss+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to