Похоже, что Haskell установил несколько соглашений об именах для монад.
Примеры:
T
в конец для получения имени преобразователя монад (например, Reader
-> ReaderT
) runXXX
для выполнения вычисления монады (например, runST
, runReader
) liftXXX
для различных значений XXX
Есть ли другие соглашения об именах?