TypeCompose 0.6.1 → 0.6.2
raw patch · 2 files changed
+30/−1 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Control.Compose: oFmap :: (Functor g') => (f a -> f' a') -> (g' :. f) a -> (g' :. f') a'
+ Control.Compose: oLiftA2 :: (Applicative g'') => (f a -> f' a' -> f'' a'') -> (g'' :. f) a -> (g'' :. f') a' -> (g'' :. f'') a''
+ Control.Compose: oLiftA3 :: (Applicative g''') => (f a -> f' a' -> f'' a'' -> f''' a''') -> (g''' :. f) a -> (g''' :. f') a' -> (g''' :. f'') a'' -> (g''' :. f''') a'''
+ Control.Compose: oPure :: (Applicative g) => f a -> (g :. f) a
Files
- TypeCompose.cabal +1/−1
- src/Control/Compose.hs +29/−0
TypeCompose.cabal view
@@ -1,5 +1,5 @@ Name: TypeCompose-Version: 0.6.1+Version: 0.6.2 Synopsis: Type composition classes & instances Category: Composition, Control Description:
src/Control/Compose.hs view
@@ -30,6 +30,7 @@ , Cofunctor(..), bicomap -- * Unary\/unary composition , (:.)(..), O, biO, convO, coconvO, inO, inO2, inO3+ , oPure, oFmap, oLiftA2, oLiftA3 , fmapFF, fmapCC, cofmapFC, cofmapCF -- , DistribM(..), joinMM -- * Type composition@@ -204,6 +205,34 @@ -> ((g :. f) a -> (g' :. f') a' -> (g'' :. f'') a'' -> (g''' :. f''') a''') inO3 = (inO2 .).(.unO) -- inO3 h (O gfa) = inO2 (h gfa)+++-- | Handy combination of 'O' and 'pure'.+oPure :: (Applicative g) => f a -> (g :. f) a++-- | Handy combination of 'inO' and 'fmap'.+oFmap :: (Functor g') =>+ (f a -> f' a') -> (g' :. f) a -> (g' :. f') a'++-- | Handy combination of 'inO2' and 'liftA2'.+oLiftA2 :: (Applicative g'') =>+ (f a -> f' a' -> f'' a'')+ -> (g'' :. f) a -> (g'' :. f') a' -> (g'' :. f'') a''++-- | Handy combination of 'inO3' and 'liftA3'.+oLiftA3 :: (Applicative g''') =>+ (f a -> f' a' -> f'' a'' -> f''' a''')+ -> (g''' :. f) a+ -> (g''' :. f') a'+ -> (g''' :. f'') a''+ -> (g''' :. f''') a'''++oPure = O . pure+oFmap = inO . fmap+oLiftA2 = inO2 . liftA2+oLiftA3 = inO3 . liftA3++ -- | Used for the @Functor :. Functor@ instance of 'Functor' fmapFF :: ( Functor g, Functor f) => (a -> b) -> (g :. f) a -> (g :. f) b