Skip to content

๐Ÿ›— Typeclass for monads that can be unlifted to arbitrary base monads

License

Notifications You must be signed in to change notification settings

kowainik/unlift

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

4 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

unlift

GitHub CI Hackage MPL-2.0 license

Typeclass for monads that can be unlifted to arbitrary base monads:

class (MonadBase b m) => MonadUnlift b m
  where
    withRunInBase :: ((forall a . m a -> b a) -> b x) -> m x

This typeclass is helpful when writing code that is polymorphic over the base monad, so later you can select a different base monad for each specific use-case.

Common usages include:

  1. Concurrent testing with dejafu.
  2. Working with code over polymorphic PrimMonad.