Deep talvez empilhe com yesod

Eu estou tentando definir um esquema de autorização onde eu verifiquei que 1. usuário está logado 2. usuário tem acesso a um determinado objeto. Para isso eu primeiro chamomaybeAuthId, em seguida, tente obter o objeto atual e 'join' para outra tabela que lista as permissões. Existem dois níveis de casos talvez e um nível de caso de lista vazia. Pensei em usar o MaybeT, mas ou estou muito cansado para fazê-lo funcionar ou o "transformador não-monad" transforma-não pode ser usado com o MaybeT. Existe uma boa maneira de lidar com maybes profundos?

Editar:

Eu estava um pouco incerto, parece. Eu quis dizer que tenho algo assim:

case foo of
   Nothing -> something
   Just foo' -> do
      bar <- somethingelse
      case bar of
         Nothing -> ...
         Just bar' -> ...

questionAnswers(3)

yourAnswerToTheQuestion