You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is the first time I create an Issue... I hope I'm doing it right >_<
Use case:
the user passes to a function a Maybe type without explicitly/correctly declaring how to handle all alternatives (mostly the Nothing case).
In the model I have a {segment : Maybe Segment}
where...
type alias Segment =
{ kind : Int
, detail : Int
, openings : Int
}
I have a function that goes like this...
revealSomeplace model =
let
thisSegment = model.segment
in
if thisSegment.kind < 4 then
let
passageText =
case thisSegment.detail of
1 -> "an ascending passage"
2 -> "a descending passage"
3 -> "a twisting passage"
4 -> "a forking passage"
5 -> "an unstable passage"
6 -> "an obstructed passage"
_ -> "error"
in
[passageText]
I get the error that thisSegment is of type Maybe.Maybe Segment but the fuction needs a record with a kind field.`
Current error:
the compiler tells me that I am passing a Maybe type but the compiler expects something different
this leads me to think that I have a type problem, some kind of mismatch
instead what I needed to do was to cover the Nothing case
Suggestion:
if the problem is that not all cases are covered... it would be nice if the compiler told me THAT, instead of insisting that there is some kind of type mismatch.
"it seems you are using a Maybe type but I can't find a definition of what happens in case of Nothing"
The text was updated successfully, but these errors were encountered:
When you write thisSegment.kind < 4, the compiler should complain.
You basically saying "do the following when kind is less than 4", but what happens if thisSegment is Nothing? You would be telling the compiler to access .kind from Nothing!
You can't actually access thisSegment.detail because thisSegment might be Nothing.
Try unwrapping the Maybe using something like
revealSomeplace model =
case model.segment of
-- This is the unwrapping
Just thisSegment = model.segment ->
if thisSegment.kind < 4 then
let
passageText =
case thisSegment.detail of
1 -> "an ascending passage"
2 -> "a descending passage"
3 -> "a twisting passage"
4 -> "a forking passage"
5 -> "an unstable passage"
6 -> "an obstructed passage"
_ -> "error"
in
else
-- thisSegment.kind >= 4
Nothing ->
...
Put differently, you need to cover the Just InnerType case and the Nothing; not just the InnerType case
This is the first time I create an Issue... I hope I'm doing it right >_<
Use case:
the user passes to a function a Maybe type without explicitly/correctly declaring how to handle all alternatives (mostly the Nothing case).
In the model I have a {segment : Maybe Segment}
where...
type alias Segment =
{ kind : Int
, detail : Int
, openings : Int
}
I have a function that goes like this...
revealSomeplace model =
let
thisSegment = model.segment
in
if thisSegment.kind < 4 then
let
passageText =
case thisSegment.detail of
1 -> "an ascending passage"
2 -> "a descending passage"
3 -> "a twisting passage"
4 -> "a forking passage"
5 -> "an unstable passage"
6 -> "an obstructed passage"
_ -> "error"
in
[passageText]
I get the error that thisSegment is of type Maybe.Maybe Segment but the fuction needs a record with a kind field.`
Current error:
the compiler tells me that I am passing a Maybe type but the compiler expects something different
this leads me to think that I have a type problem, some kind of mismatch
instead what I needed to do was to cover the Nothing case
Suggestion:
if the problem is that not all cases are covered... it would be nice if the compiler told me THAT, instead of insisting that there is some kind of type mismatch.
"it seems you are using a Maybe type but I can't find a definition of what happens in case of Nothing"
The text was updated successfully, but these errors were encountered: