How MTL structure and naming works
masterMTL (Monad Transformer Library) extends the transformers package by providing type classes that define monadic operations for various transformers.
MTL follows a consistent naming convention for a transformer (e.g., Foo):
- Module:
Control.Monad.Foocontains the interface. - Type Class:
MonadFoodefines the operations available within the transformer. - Data Type:
FooTis the actual transformer implementation (usually from thetransformerspackage) for which MTL provides instances. - Runner: Functions like
runFooTare used to execute the transformed computation.