io-classes-mtl: Experimental MTL instances for io-classes

[ apache, control, library ] [ Propose Tags ]

MTL instances for io-classes package. Some of the instances are novel and some are still experimental.

[Skip to Readme]


Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Versions [RSS],,,,,
Change log
Dependencies array, base (>=4.9 && <4.21), io-classes (>=1.5 && <1.6), mtl, si-timers [details]
License Apache-2.0[multiple license files]
Copyright 2022-2024 Input Output Global Inc (IOG)
Author Duncan Coutts, Marcin Szamotulski
Maintainer Marcin Szamotulski
Revised Revision 1 made by IOHK at 2024-05-31T05:07:05Z
Category Control
Bug tracker
Uploaded by IOHK at 2024-05-17T10:34:53Z
Distributions NixOS:
Downloads 2561 total (286 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2024-05-17 [all 1 reports]

Readme for io-classes-mtl-

[back to package description]

Experimental MTL Instance for io-classes

ReaderT instances are included in io-classes, but all other instances are included in this package. Some of them are rather novel and experimental others might be less so. This code is not well tested, and some of it hasn't run in a production environment as we know (let us know if you do!).

The MonadSTM instances for monad transformers are somewhat novel. The STM monad is transformed together with the base monad. This means that the transformer primitive operations are available in STM. For example you an STM transaction can lock updating the state of the current thread.

We haven't included MonadAsync instances (although we have an experimental branch how this could be done). It could work like the lifted-async package. But we feel this can be controversial, so it's not included.

The design goal is to follow exception package instances, but since we don't have any tests we are not very confident of this either. Contributions are welcomed!