Hola, estás bastante acertado con tus interpretaciones.
- fromJust, retorna el dato interno si es un Just y sino se genera un error en tiempo de ejecución. Es una función parcial.
Ejemplos:
Prelude Data.Maybe> fromJust (Just 9)
9
Prelude Data.Maybe> fromJust Nothing
*** Exception: Maybe.fromJust: Nothing
- fromMaybe, es como decís. Ejemplos:
Prelude Data.Maybe> fromMaybe 8 (Just 6)
6
Prelude Data.Maybe> fromMaybe 8 Nothing
8
- maybe, es como vos decís, vendría a ser el "fold de Maybe", dado que sustituye los constructores por las funciones que se pasan. Ejemplos
Prelude Data.Maybe> maybe 0 (+ 2) (Just 4)
6
Prelude Data.Maybe> maybe 0 (+ 2) Nothing
0
saludos