packages feed

id 0.0.2 → 0.0.3

raw patch · 3 files changed

+199/−6 lines, 3 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

+ Data.Id: __Unwrapped :: forall f1 a f' a' p f2. (Profunctor p, Functor f2) => p (Id f1 a) (f2 (Id f' a')) -> p (f1 a) (f2 (f' a'))
+ Data.Id: instance Data.Id.AsId (Data.Either.Either e a) (Data.Either.Either e) a
+ Data.Id: instance Data.Id.AsId (Data.Functor.Const.Const c a) (Data.Functor.Const.Const c) a
+ Data.Id: instance Data.Id.AsId (Data.Functor.Identity.Identity a) Data.Functor.Identity.Identity a
+ Data.Id: instance Data.Id.AsId (Data.Proxy.Proxy a) Data.Proxy.Proxy a
+ Data.Id: instance Data.Id.AsId (Data.Tagged.Tagged s a) (Data.Tagged.Tagged s) a
+ Data.Id: instance Data.Id.AsId (GHC.Base.NonEmpty a) GHC.Base.NonEmpty a
+ Data.Id: instance Data.Id.AsId (GHC.Maybe.Maybe a) GHC.Maybe.Maybe a
+ Data.Id: instance Data.Id.AsId (w, a) ((,) w) a
+ Data.Id: instance Data.Id.AsId [a] [] a
+ Data.Id: instance Data.Id.GetterId (Data.Either.Either e a) (Data.Either.Either e) a
+ Data.Id: instance Data.Id.GetterId (Data.Functor.Const.Const c a) (Data.Functor.Const.Const c) a
+ Data.Id: instance Data.Id.GetterId (Data.Functor.Identity.Identity a) Data.Functor.Identity.Identity a
+ Data.Id: instance Data.Id.GetterId (Data.Proxy.Proxy a) Data.Proxy.Proxy a
+ Data.Id: instance Data.Id.GetterId (Data.Tagged.Tagged s a) (Data.Tagged.Tagged s) a
+ Data.Id: instance Data.Id.GetterId (GHC.Base.NonEmpty a) GHC.Base.NonEmpty a
+ Data.Id: instance Data.Id.GetterId (GHC.Maybe.Maybe a) GHC.Maybe.Maybe a
+ Data.Id: instance Data.Id.GetterId (w, a) ((,) w) a
+ Data.Id: instance Data.Id.GetterId [a] [] a
+ Data.Id: instance Data.Id.HasId (Data.Either.Either e a) (Data.Either.Either e) a
+ Data.Id: instance Data.Id.HasId (Data.Functor.Const.Const c a) (Data.Functor.Const.Const c) a
+ Data.Id: instance Data.Id.HasId (Data.Functor.Identity.Identity a) Data.Functor.Identity.Identity a
+ Data.Id: instance Data.Id.HasId (Data.Proxy.Proxy a) Data.Proxy.Proxy a
+ Data.Id: instance Data.Id.HasId (Data.Tagged.Tagged s a) (Data.Tagged.Tagged s) a
+ Data.Id: instance Data.Id.HasId (GHC.Base.NonEmpty a) GHC.Base.NonEmpty a
+ Data.Id: instance Data.Id.HasId (GHC.Maybe.Maybe a) GHC.Maybe.Maybe a
+ Data.Id: instance Data.Id.HasId (w, a) ((,) w) a
+ Data.Id: instance Data.Id.HasId [a] [] a
+ Data.Id: instance Data.Id.ReviewId (Data.Either.Either e a) (Data.Either.Either e) a
+ Data.Id: instance Data.Id.ReviewId (Data.Functor.Const.Const c a) (Data.Functor.Const.Const c) a
+ Data.Id: instance Data.Id.ReviewId (Data.Functor.Identity.Identity a) Data.Functor.Identity.Identity a
+ Data.Id: instance Data.Id.ReviewId (Data.Proxy.Proxy a) Data.Proxy.Proxy a
+ Data.Id: instance Data.Id.ReviewId (Data.Tagged.Tagged s a) (Data.Tagged.Tagged s) a
+ Data.Id: instance Data.Id.ReviewId (GHC.Base.NonEmpty a) GHC.Base.NonEmpty a
+ Data.Id: instance Data.Id.ReviewId (GHC.Maybe.Maybe a) GHC.Maybe.Maybe a
+ Data.Id: instance Data.Id.ReviewId (w, a) ((,) w) a
+ Data.Id: instance Data.Id.ReviewId [a] [] a
- Data.Id: reviewId :: ReviewId a f x => Review a (f x)
+ Data.Id: reviewId :: ReviewId a f x => Review a (Id f x)

Files

changelog.md view
@@ -1,3 +1,9 @@+0.0.3++* Add __Unwrapped iso (dual of __Wrapped) with specializations for all type aliases+* Change ReviewId target from (f x) to (Id f x)+* Add GetterId, HasId, ReviewId, AsId instances for canonical functors: Identity, Maybe, [], NonEmpty, Either e, (,) w, Const c, Proxy, Tagged s+ 0.0.2  * Add type classes: GetterId, HasId, ReviewId, AsId
id.cabal view
@@ -1,6 +1,6 @@ cabal-version:        2.4 name:                 id-version:              0.0.2+version:              0.0.3 synopsis:             Id (f a) data type description:          (f a) data type, with optics and functions for switching the type constructor (f) license:              BSD-3-Clause
src/Data/Id.hs view
@@ -46,6 +46,7 @@      -- * Optics     __Wrapped,+    __Unwrapped,     idTagged,     idProxy,     just,@@ -74,6 +75,7 @@     prism',     re,     review,+    to,     unto,     view,     _Just,@@ -255,6 +257,47 @@     Id  -- |+-- >>> view __Unwrapped [1,2,3] :: Id [] Int+-- Id [1,2,3]+--+-- >>> view (from __Unwrapped) (Id [1,2,3])+-- [1,2,3]+--+-- >>> over __Unwrapped (mapId (fmap (+1))) [1,2,3] :: [Int]+-- [2,3,4]+{-# SPECIALIZE __Unwrapped ::+  Iso (Maybe a) (Maybe a') (IdMaybe a) (IdMaybe a')+  #-}+{-# SPECIALIZE __Unwrapped ::+  Iso (Identity a) (Identity a') (IdIdentity a) (IdIdentity a')+  #-}+{-# SPECIALIZE __Unwrapped ::+  Iso (Either e a) (Either e' a') (IdEither e a) (IdEither e' a')+  #-}+{-# SPECIALIZE __Unwrapped ::+  Iso (w, a) (w', a') (IdWriter w a) (IdWriter w' a')+  #-}+{-# SPECIALIZE __Unwrapped ::+  Iso [a] [a'] (IdList a) (IdList a')+  #-}+{-# SPECIALIZE __Unwrapped ::+  Iso (NonEmpty a) (NonEmpty a') (IdNonEmpty a) (IdNonEmpty a')+  #-}+{-# SPECIALIZE __Unwrapped ::+  Iso (Const c a) (Const c' a') (IdConst c a) (IdConst c' a')+  #-}+__Unwrapped ::+  Iso+    (f a)+    (f' a')+    (Id f a)+    (Id f' a')+__Unwrapped =+  iso+    Id+    (\(Id x) -> x)++-- | -- >>> unId (Id [1,2,3]) -- [1,2,3] --@@ -289,6 +332,42 @@   getId =     id +instance GetterId (Identity a) Identity a where+  getId =+    to Id++instance GetterId (Maybe a) Maybe a where+  getId =+    to Id++instance GetterId [a] [] a where+  getId =+    to Id++instance GetterId (NonEmpty a) NonEmpty a where+  getId =+    to Id++instance GetterId (Either e a) (Either e) a where+  getId =+    to Id++instance GetterId (w, a) ((,) w) a where+  getId =+    to Id++instance GetterId (Const c a) (Const c) a where+  getId =+    to Id++instance GetterId (Proxy a) Proxy a where+  getId =+    to Id++instance GetterId (Tagged s a) (Tagged s) a where+  getId =+    to Id+ -- | -- >>> view id' (Id [1,2,3]) -- Id [1,2,3]@@ -308,20 +387,92 @@   setId =     const +instance HasId (Identity a) Identity a where+  setId =+    const . unId++instance HasId (Maybe a) Maybe a where+  setId =+    const . unId++instance HasId [a] [] a where+  setId =+    const . unId++instance HasId (NonEmpty a) NonEmpty a where+  setId =+    const . unId++instance HasId (Either e a) (Either e) a where+  setId =+    const . unId++instance HasId (w, a) ((,) w) a where+  setId =+    const . unId++instance HasId (Const c a) (Const c) a where+  setId =+    const . unId++instance HasId (Proxy a) Proxy a where+  setId =+    const . unId++instance HasId (Tagged s a) (Tagged s) a where+  setId =+    const . unId+ -- |--- >>> review reviewId [1,2,3] :: Id [] Int+-- >>> review reviewId (Id [1,2,3]) :: Id [] Int -- Id [1,2,3] ----- >>> review reviewId (Identity 7) :: IdIdentity Int+-- >>> review reviewId (Id (Identity 7)) :: IdIdentity Int -- Id (Identity 7) class ReviewId a f x | a -> f x where   reviewId ::-    Review a (f x)+    Review a (Id f x)  instance ReviewId (Id f a) f a where   reviewId =-    unto Id+    unto id +instance ReviewId (Identity a) Identity a where+  reviewId =+    unto unId++instance ReviewId (Maybe a) Maybe a where+  reviewId =+    unto unId++instance ReviewId [a] [] a where+  reviewId =+    unto unId++instance ReviewId (NonEmpty a) NonEmpty a where+  reviewId =+    unto unId++instance ReviewId (Either e a) (Either e) a where+  reviewId =+    unto unId++instance ReviewId (w, a) ((,) w) a where+  reviewId =+    unto unId++instance ReviewId (Const c a) (Const c) a where+  reviewId =+    unto unId++instance ReviewId (Proxy a) Proxy a where+  reviewId =+    unto unId++instance ReviewId (Tagged s a) (Tagged s) a where+  reviewId =+    unto unId+ -- | -- >>> preview _Id (Id [1,2,3]) -- Just (Id [1,2,3])@@ -335,11 +486,47 @@   _Id ::     Prism' a (Id f x)   _Id =-    prism' (review reviewId . unId) matchId+    prism' (review reviewId) matchId  instance AsId (Id f a) f a where   matchId =     Just++instance AsId (Identity a) Identity a where+  matchId =+    Just . Id++instance AsId (Maybe a) Maybe a where+  matchId =+    Just . Id++instance AsId [a] [] a where+  matchId =+    Just . Id++instance AsId (NonEmpty a) NonEmpty a where+  matchId =+    Just . Id++instance AsId (Either e a) (Either e) a where+  matchId =+    Just . Id++instance AsId (w, a) ((,) w) a where+  matchId =+    Just . Id++instance AsId (Const c a) (Const c) a where+  matchId =+    Just . Id++instance AsId (Proxy a) Proxy a where+  matchId =+    Just . Id++instance AsId (Tagged s a) (Tagged s) a where+  matchId =+    Just . Id  -- | -- >>> Id [1,2,3] <> Id [4,5]