packages feed

pointed 4.2 → 4.2.0.1

raw patch · 3 files changed

+81/−6 lines, 3 filesdep +hashabledep +unordered-containersdep ~basedep ~semigroupoids

Dependencies added: hashable, unordered-containers

Dependency ranges changed: base, semigroupoids

Files

pointed.cabal view
@@ -1,6 +1,6 @@ name:          pointed category:      Data-version:       4.2+version:       4.2.0.1 license:       BSD3 cabal-version: >= 1.6 license-file:  LICENSE@@ -27,11 +27,13 @@     containers           >= 0.4     && < 0.6,     comonad              >= 4       && < 5,     data-default-class   >= 0.0.1   && < 0.1,+    hashable             >= 1.1     && < 1.3,     kan-extensions       >= 4.2     && < 5,     semigroups           >= 0.8.3.1 && < 1,-    semigroupoids        >= 4       && < 5,+    semigroupoids        >= 4       && < 6,     stm                  >= 2.1.2.1 && < 2.5,-    tagged               >= 0.5     && < 1+    tagged               >= 0.5     && < 1,+    unordered-containers >= 0.2     && < 0.3    exposed-modules:     Data.Pointed
src/Data/Copointed.hs view
@@ -6,13 +6,18 @@ module Data.Copointed where  import Data.Default.Class+import Data.Functor.Bind import Data.Functor.Identity import Data.Functor.Compose import Data.Functor.Coproduct-import Data.Functor.Kan.Lift+import Data.Functor.Reverse+import Data.Functor.Kan.Lift as Kan import qualified Data.Functor.Sum as F import Data.Tree import Data.Semigroup as Semigroup+import Control.Applicative+import Control.Applicative.Backwards+import Control.Applicative.Lift as Applicative import Control.Monad.Trans.Identity import qualified Control.Monad.Trans.Writer.Lazy as Lazy import qualified Control.Monad.Trans.Writer.Strict as Strict@@ -56,13 +61,23 @@ instance Copointed Tree where   copoint = rootLabel +instance Copointed f => Copointed (Backwards f) where+  copoint = copoint . forwards+ instance (Copointed p, Copointed q) => Copointed (Compose p q) where   copoint = copoint . copoint . getCompose  instance (Copointed p, Copointed q) => Copointed (Coproduct p q) where   copoint = coproduct copoint copoint -instance (Functor g, g ~ h) => Copointed (Lift g h) where+instance Copointed f => Copointed (Applicative.Lift f) where+  copoint (Pure a)   = a+  copoint (Other fa) = copoint fa++instance Copointed f => Copointed (Reverse f) where+  copoint = copoint . getReverse++instance (Functor g, g ~ h) => Copointed (Kan.Lift g h) where   copoint x = runIdentity (runLift x (fmap Identity))   {-# INLINE copoint #-} @@ -96,8 +111,26 @@ instance Copointed Semigroup.Min where   copoint = Semigroup.getMin +instance Copointed WrappedMonoid where+  copoint = unwrapMonoid++#if MIN_VERSION_semigroups(0,16,2)+instance Copointed (Arg a) where+  copoint (Arg _ b) = b+#endif+ instance Copointed w => Copointed (EnvT e w) where   copoint = copoint . lowerEnvT  instance Copointed w => Copointed (StoreT s w) where   copoint (StoreT wf s) = copoint wf s++instance Copointed f => Copointed (WrappedApplicative f) where+  copoint = copoint . unwrapApplicative++instance Copointed m => Copointed (WrappedMonad m) where+  copoint = copoint . unwrapMonad++instance Copointed f => Copointed (MaybeApply f) where+  copoint (MaybeApply (Left fa)) = copoint fa+  copoint (MaybeApply (Right a)) = a
src/Data/Pointed.hs view
@@ -3,20 +3,28 @@ #if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 702 {-# LANGUAGE Safe #-} #endif+{-# OPTIONS_GHC -fno-warn-deprecations #-} module Data.Pointed where  import Control.Arrow import Control.Applicative+import Control.Comonad import Control.Concurrent.STM import Data.Default.Class import qualified Data.Monoid as Monoid import Data.Semigroup as Semigroup import Data.Functor.Identity-import Data.Sequence (Seq)+import Data.Sequence (Seq, ViewL(..), ViewR(..)) import qualified Data.Sequence as Seq import Data.Tree (Tree(..))+import Data.Hashable+import Data.HashMap.Lazy (HashMap)+import qualified Data.HashMap.Lazy as HashMap+import Data.Map (Map)+import qualified Data.Map as Map import Data.Set (Set) import qualified Data.Set as Set+import Data.Functor.Bind import Data.Functor.Constant import Data.Functor.Kan.Rift import qualified Data.Functor.Product as Functor@@ -123,9 +131,32 @@ instance Pointed Semigroup.Min where   point = Semigroup.Min +instance Pointed Option where+  point = Option . Just++instance Pointed WrappedMonoid where+  point = WrapMonoid++#if MIN_VERSION_semigroups(0,16,2)+instance Default a => Pointed (Arg a) where+  point = Arg def+#endif++instance (Default k, Hashable k) => Pointed (HashMap k) where+  point = HashMap.singleton def++instance Default k => Pointed (Map k) where+  point = Map.singleton def+ instance Pointed Seq where   point = Seq.singleton +instance Pointed ViewL where+  point a = a :< Seq.empty++instance Pointed ViewR where+  point a = Seq.empty :> a+ instance Pointed Set where   point = Set.singleton @@ -192,3 +223,12 @@  instance Pointed m => Pointed (Static m a) where   point = Static . point . const++instance Pointed (Cokleisli w a) where+  point = Cokleisli . const++instance Pointed f => Pointed (WrappedApplicative f) where+  point = WrapApplicative . point++instance Pointed (MaybeApply f) where+  point = MaybeApply . Right