This `case` does not have branches for all possibilities:
9|> case list of
10|> [] -> []
11|> x::y::[]->
12|> if x == y then
13|> x :: list
14|> else
15|> x :: y :: list
16|> x::y::xs ->
17|> if x == y then
18|> x :: noDupes xs
19|> else
20|> x :: (noDupes (y::xs))
Missing possibilities include:
[_]
I would have to crash if I saw one of those. Add branches for them!
Hint: If you want to write the code for each branch later, use `Debug.todo` as a
placeholder. Read <https://elm-lang.org/0.19.0/missing-patterns> for more
guidance on this workflow.
You cases check for 1) an empty list, 2) a list with exactly two elements, and 3) a list with 2 elements and a tail. You forgot to check for the singleton list (a list with exactly one element) which is what the compiler is warning you about. Note, checking for a list with exactly two elements is not effective for this particular program.
Now I have some missing possibilities:
You cases check for 1) an empty list, 2) a list with exactly two elements, and 3) a list with 2 elements and a tail. You forgot to check for the singleton list (a list with exactly one element) which is what the compiler is warning you about. Note, checking for a list with exactly two elements is not effective for this particular program.
I'm taking a note of "checking for a list with exactly two elements is not effective for this particular program."