Unwrap Maybe and Result early
If you have a Maybe, Result or RemoteData it is often a good idea to try to unwrap those as early as possible.
Anti-pattern
userCard : Maybe User -> Html Msg
userCard maybeUser =
div []
[ userInfo maybeUser
, userActivity maybeUser
]
In here both userInfo and userActivy get a Maybe User. Meaning that will need to unwrap this value several times in your views.
Pattern
userCard maybeUser =
case maybeUser of
Nothing ->
div [] [ ... ]
Just user ->
div []
[ userInfo user
, userActivity user
]
Here the sub views take a User, this makes most of your views easier to write and test.