ffunctor 1.1.99 → 1.1.100
raw patch · 2 files changed
+9/−3 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Data.FFunctor: luftIO :: FFunctor f => MonadIO m => f IO -> f m
Files
- ffunctor.cabal +4/−3
- library/Data/FFunctor.hs +5/−0
ffunctor.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.2 name: ffunctor-version: 1.1.99+version: 1.1.100 synopsis: FFunctor typeclass license: BSD-3-Clause license-file: LICENSE@@ -11,12 +11,13 @@ tested-with: GHC ^>= 8.4.4 || ^>= 8.6.3 category: Constraints description:- Micro library with a Higher kinded Functor in the spirit of HFunctor,- MFunctor and MonadTrans.+ Micro library with a Higher Kinded Functor in the spirit of HFunctor,+ MFunctor and MonadTrans (which all have different kindedness). . Useful to map over the type parameter in a record of functions, e.g. https://www.benjamin.pizza/posts/2017-12-15-functor-functors.html and https://discourse.haskell.org/t/local-capabilities-with-mtl/231+ and https://discourse.haskell.org/t/some-limits-of-mtl-with-records-of-functions/576 source-repository head type: git
library/Data/FFunctor.hs view
@@ -8,10 +8,15 @@ #ifdef HAVE_TRANSFORMERS import Control.Monad.Trans.Class (MonadTrans, lift) #endif+import Control.Monad.IO.Class (MonadIO, liftIO) class FFunctor (f :: (* -> *) -> *) where --ffmap :: (Functor m, Functor n) => (m ~> n) -> f m -> f n ffmap :: (Functor m, Functor n) => (forall a . (m a -> n a)) -> f m -> f n++-- | Lifts an IO impl of a record of functions into a more general MonadIO impl+luftIO :: FFunctor f => MonadIO m => f IO -> f m+luftIO = ffmap liftIO #ifdef HAVE_TRANSFORMERS -- | Lifts a record of functions (that has an FFunctor) into a monad transformer.