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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to