monadology

The best ideas in monad-related classes and types.

https://github.com/AshleyYakeley/monadology#readme

Version on this page:0.3
LTS Haskell 24.24:0.4
Stackage Nightly 2025-12-16:0.4
Latest on Hackage:0.4

See all snapshots monadology appears in

BSD-2-Clause licensed by Ashley Yakeley
Maintained by <[email protected]>
This version can be pinned in stack with:monadology-0.3@sha256:91cfc11801f633800fb352f3dc89c9f878885e627e3d8b2e9ef7eeb9e3b26dc5,5903

Module documentation for 0.3

  • Control
    • Control.Monad
      • Control.Monad.Ology
        • Control.Monad.Ology.Data
          • Control.Monad.Ology.Data.Exn
          • Control.Monad.Ology.Data.Param
          • Control.Monad.Ology.Data.Prod
          • Control.Monad.Ology.Data.Ref
        • Control.Monad.Ology.General
          • Control.Monad.Ology.General.Catch
          • Control.Monad.Ology.General.Cont
          • Control.Monad.Ology.General.Coroutine
          • Control.Monad.Ology.General.Exception
          • Control.Monad.Ology.General.Extract
          • Control.Monad.Ology.General.Function
          • Control.Monad.Ology.General.IO
          • Control.Monad.Ology.General.Identity
          • Control.Monad.Ology.General.Inner
          • Control.Monad.Ology.General.Outer
          • Control.Monad.Ology.General.Throw
          • Control.Monad.Ology.General.Trans
            • Control.Monad.Ology.General.Trans.AskUnlift
            • Control.Monad.Ology.General.Trans.Coerce
            • Control.Monad.Ology.General.Trans.Constraint
            • Control.Monad.Ology.General.Trans.Hoist
            • Control.Monad.Ology.General.Trans.Trans
            • Control.Monad.Ology.General.Trans.Tunnel
            • Control.Monad.Ology.General.Trans.Unlift
        • Control.Monad.Ology.Specific
          • Control.Monad.Ology.Specific.ComposeInner
          • Control.Monad.Ology.Specific.ComposeOuter
          • Control.Monad.Ology.Specific.ComposeT
          • Control.Monad.Ology.Specific.ContT
          • Control.Monad.Ology.Specific.CoroutineT
          • Control.Monad.Ology.Specific.ExceptT
          • Control.Monad.Ology.Specific.IdentityT
          • Control.Monad.Ology.Specific.LifecycleT
          • Control.Monad.Ology.Specific.MaybeT
          • Control.Monad.Ology.Specific.ReaderStateT
          • Control.Monad.Ology.Specific.ReaderT
          • Control.Monad.Ology.Specific.Result
          • Control.Monad.Ology.Specific.ResultT
          • Control.Monad.Ology.Specific.StackT
          • Control.Monad.Ology.Specific.StateT
          • Control.Monad.Ology.Specific.StepT
          • Control.Monad.Ology.Specific.WithT
          • Control.Monad.Ology.Specific.WriterT

Monadology is intended as a collection of the best ideas in monad-related classes and types, with a focus on correctness and elegance, and theoretical understanding, rather than practical performance.

Changes

[0.3] - 2023-07-25

  • LifecycleT: improve to make closing more robust
  • add bracketNoMask_

[0.2] - 2023-07-31

  • fix “Prod” type, add more functions
  • WithT: rename from TransformT, add more instances & functions
  • refRestore etc.: more general because no masking of async exceptions
  • remove some unnecessary classes and constraints

[0.1] - 2022-09-12

  • initial release