No Haskell, posso usar o tipo a -> Maybe bpara modelar uma função que retorna um valor do tipo bou não retorna nada (falha). Se eu tiver tipos a1, ..., a(n+1)e funções f1, ..., fn, com fi :: ai -> Maybe a(i+1)para todos i, 1 <= i <= nposso encadear as funções usando o >>=operador...