packages feed

parametric-functor 0.1.0.0 → 0.1.1.0

raw patch · 3 files changed

+62/−3 lines, 3 filesdep +transformersPVP ok

version bump matches the API change (PVP)

Dependencies added: transformers

API changes (from Hackage documentation)

+ Control.Monad.Trans.Class.Parametric: class (MonadTrans t, forall m x y. (Monad m, ParametricFunctor m, Coercible x y) => Coercible (t m x) (t m y)) => ParametricMonadTrans t
+ Control.Monad.Trans.Class.Parametric: instance (Control.Monad.Trans.Class.MonadTrans t, forall (m :: * -> *) x y. (GHC.Base.Monad m, Data.Functor.Parametric.ParametricFunctor m, GHC.Types.Coercible x y) => GHC.Types.Coercible (t m x) (t m y)) => Control.Monad.Trans.Class.Parametric.ParametricMonadTrans t

Files

CHANGELOG.md view
@@ -1,5 +1,9 @@ # Revision history for parametric-functor +## 0.1.1.0 -- 2024-01-15++* Add `ParametricMonadTrans`+ ## 0.1.0.0 -- 2024-01-13  * Initial (and hopefully final) release
parametric-functor.cabal view
@@ -1,6 +1,6 @@ cabal-version:   3.0 name:            parametric-functor-version:         0.1.0.0+version:         0.1.1.0 synopsis:        A known-parametric Functor typeclass description:   As Oleg Grenrus [argued](http://oleg.fi/gists/posts/2019-07-31-fmap-coerce-coerce.html) in 2019,@@ -41,7 +41,9 @@   location: https://github.com/shlevy/parametric-functor  library-  exposed-modules:  Data.Functor.Parametric-  build-depends:    base >= 4.12 && < 5+  exposed-modules:+    Control.Monad.Trans.Class.Parametric+    Data.Functor.Parametric+  build-depends:    base >= 4.12 && < 5, transformers >= 0.2 && < 1.0   hs-source-dirs:   src   default-language: Haskell98
+ src/Control/Monad/Trans/Class/Parametric.hs view
@@ -0,0 +1,53 @@+-- Copyright 2024 Shea Levy+--+-- Licensed under the Apache License, Version 2.0 (the "License");+-- you may not use this file except in compliance with the License.+-- You may obtain a copy of the License at+--+--     http://www.apache.org/licenses/LICENSE-2.0+--+-- Unless required by applicable law or agreed to in writing, software+-- distributed under the License is distributed on an "AS IS" BASIS,+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.+-- See the License for the specific language governing permissions and+-- limitations under the License.+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MonoLocalBinds #-}+{-# LANGUAGE QuantifiedConstraints #-}+{-# LANGUAGE UndecidableInstances #-}+{-# LANGUAGE UnicodeSyntax #-}++{- |+Description : 'MonadTrans'formers that preserve t'ParametricFunctor'+Copyright   : Copyright 2024 Shea Levy.+License     : Apache-2.0+Maintainer  : shea@shealevy.com+-}+module Control.Monad.Trans.Class.Parametric where++import Control.Monad.Trans.Class+import Data.Coerce+import Data.Functor.Parametric++-- | 'MonadTrans'formers that preserve t'ParametricFunctor'+class+  ( MonadTrans t+  , ∀ m x y+     . ( Monad m+       , ParametricFunctor m+       , Coercible x y+       )+    ⇒ Coercible (t m x) (t m y)+  ) ⇒+  ParametricMonadTrans t++instance+  ( MonadTrans t+  , ∀ m x y+     . ( Monad m+       , ParametricFunctor m+       , Coercible x y+       )+    ⇒ Coercible (t m x) (t m y)+  )+  ⇒ ParametricMonadTrans t