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

[ apache, control, library ] [ Propose Tags ]
Versions [RSS] 0.1.0.0, 0.1.0.1, 0.1.0.2, 0.1.0.3, 0.1.1.0
Change log CHANGELOG.md
Dependencies array, base (>=4.9 && <4.20), io-classes (>=1.4.1.0 && <1.5), 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 coot@coot.me
Category Control
Bug tracker https://github.com/input-output-hk/io-sim/issues
Uploaded by coot at 2024-02-15T19:49:05Z
Distributions NixOS:0.1.1.0
Downloads 1871 total (249 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-02-15 [all 1 reports]

Readme for io-classes-mtl-0.1.1.0

[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!