adjunctions 3.0.0.1 → 3.0.1
raw patch · 4 files changed
+25/−19 lines, 4 filesdep ~comonaddep ~comonad-transformersdep ~contravariantPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: comonad, comonad-transformers, contravariant, distributive, keys, semigroupoids, void
API changes (from Hackage documentation)
Files
- .travis.yml +7/−0
- adjunctions.cabal +9/−10
- src/Control/Monad/Trans/Adjoint.hs +3/−3
- src/Control/Monad/Trans/Contravariant/Adjoint.hs +6/−6
.travis.yml view
@@ -1,1 +1,8 @@ language: haskell+notifications:+ irc:+ channels:+ - "irc.freenode.org#haskell-lens"+ skip_join: true+ template:+ - "\x0313adjunctions\x03/\x0306%{branch}\x03 \x0314%{commit}\x03 %{build_url} %{message}"
adjunctions.cabal view
@@ -1,6 +1,6 @@ name: adjunctions category: Data Structures, Adjunctions-version: 3.0.0.1+version: 3.0.1 license: BSD3 cabal-version: >= 1.6 license-file: LICENSE@@ -36,14 +36,14 @@ transformers >= 0.2 && < 0.4, mtl >= 2.0.1 && < 2.2, containers >= 0.3 && < 0.6,- comonad == 3.0.*,- contravariant >= 0.2.0.1 && < 0.3,- distributive >= 0.2.2 && < 0.3,- semigroupoids == 3.0.*,- void >= 0.5.5.1 && < 0.6,- keys == 3.0.*,- comonad-transformers == 3.0.*,- representable-functors >= 3.0.0.1 && < 3.1+ comonad >= 3,+ contravariant >= 0.2.0.1,+ distributive >= 0.2.2,+ semigroupoids >= 3,+ void >= 0.5.5.1,+ keys >= 3,+ comonad-transformers >= 3,+ representable-functors >= 3.0.0.1 exposed-modules: Data.Functor.Adjunction@@ -54,4 +54,3 @@ Control.Monad.Trans.Contravariant.Adjoint ghc-options: -Wall-
src/Control/Monad/Trans/Adjoint.hs view
@@ -38,8 +38,8 @@ instance (Adjunction f g, Monad m) => Functor (AdjointT f g m) where fmap f (AdjointT g) = AdjointT $ fmap (liftM (fmap f)) g- b <$ (AdjointT g) = AdjointT $ fmap (liftM (b <$)) g- + b <$ AdjointT g = AdjointT $ fmap (liftM (b <$)) g+ instance (Adjunction f g, Monad m) => Applicative (AdjointT f g m) where pure = AdjointT . leftAdjunct return (<*>) = ap@@ -47,7 +47,7 @@ instance (Adjunction f g, Monad m) => Monad (AdjointT f g m) where return = AdjointT . leftAdjunct return AdjointT m >>= f = AdjointT $ fmap (>>= rightAdjunct (runAdjointT . f)) m- + -- | Exploiting this instance requires that we have the missing Traversables for Identity, (,)e and IdentityT instance (Adjunction f g, Traversable f) => MonadTrans (AdjointT f g) where lift = AdjointT . fmap sequence . unit
src/Control/Monad/Trans/Contravariant/Adjoint.hs view
@@ -13,14 +13,14 @@ -- -- f -| g : Hask^op -> Hask ----- to build a 'Comonad' to 'Monad' transformer. Sadly, the dual construction, --- which builds a 'Comonad' out of a 'Monad', is uninhabited, because any +-- to build a 'Comonad' to 'Monad' transformer. Sadly, the dual construction,+-- which builds a 'Comonad' out of a 'Monad', is uninhabited, because any -- 'Adjunction' of the form--- +-- -- > f -| g : Hask -> Hask^op--- +-- -- would trivially admit unsafePerformIO.--- +-- ---------------------------------------------------------------------------- module Control.Monad.Trans.Contravariant.Adjoint@@ -50,7 +50,7 @@ instance (Adjunction f g, Functor w) => Functor (AdjointT f g w) where fmap f (AdjointT g) = AdjointT $ contramap (fmap (contramap f)) g- + instance (Adjunction f g, Comonad w) => Applicative (AdjointT f g w) where pure = AdjointT . leftAdjunct extract (<*>) = ap