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