طريقة واحدة للقيام بذلك ستكون (التفسير أدناه):
getHomeR :: Handler Html
getHomeR = do
muid <- maybeAuthId
m <- case muid of
Nothing -> return Nothing
Just i -> runDB $ get i
defaultLayout $ do
[whamlet|
<p>Welcome!
$maybe user <- m
<p>
Welcome #{userIdent user}<br>
<a href=@{AuthR LogoutR}>Logout
$nothing
<p>
<a href=@{AuthR LoginR}>Go to the login page
|]
وبهذه الطريقة ، نجعل مستخدمًا ربما من M ، ونجعل ذلك في ملف القالب الخاص بنا. لاحظ ال $maybe user <- m
, ، هذا (تقريبا) يترجم إلى
case m of
Just user -> do
-- Do stuff with user, which is now of type User (and not Maybe User)
Nothing -> do
--Do stuff if m was nothing
لذلك من الأفضل عدم عدم وجود بطاقة Wildcard الخاصة بك $maybe _ <- muid