I’m not sure if I’m fully addressing your question, but here are some thoughts that might be helpful:
For handling data that’s loading from a server, you might wanna check out the RemoteData package
It gives you NotAsked, Loading, Success, and Failure states. This could be more precise than Maybe if you’re fetching data.
Now, regarding the specific problem of handling entries, I agree with Sebastian’s suggestion. You could just use a simple List and pattern match on it:
case entries of
[] ->
handleZeroEntries
nonEmptyListOfEntries ->
handleEntries nonEmptyListOfEntries
However, there’s a potential issue here. The nonEmptyListOfEntries is still just a List Entries, so you’d need to handle the empty case in handleEntries again. To solve this, it’s worth looking at the elm-nonempty-list package