packages feed

lens 4.9 → 4.9.1

raw patch · 3 files changed

+32/−2 lines, 3 files

Files

CHANGELOG.markdown view
@@ -1,3 +1,9 @@+4.9.1+-----+* Added `_Wrapped` support for `NonEmpty`.+* Added `_Wrapped` support for `Alt`.+* Fixed `Rewrapped` instance for `Last`.+ 4.9 ------- * `filepath` 1.4 support
lens.cabal view
@@ -1,6 +1,6 @@ name:          lens category:      Data, Lenses, Generics-version:       4.9+version:       4.9.1 license:       BSD3 cabal-version: >= 1.8 license-file:  LICENSE
src/Control/Lens/Wrapped.hs view
@@ -13,6 +13,11 @@ {-# LANGUAGE Trustworthy #-} #endif {-# OPTIONS_GHC -fno-warn-warnings-deprecations #-}++#ifndef MIN_VERSION_base+#define MIN_VERSION_base(x,y,z) 1+#endif+ ----------------------------------------------------------------------------- -- | -- Module      :  Control.Lens.Wrapped@@ -91,6 +96,7 @@ import           Data.IntMap as IntMap import           Data.HashSet as HashSet import           Data.HashMap.Lazy as HashMap+import           Data.List.NonEmpty import           Data.Map as Map import           Data.Monoid import qualified Data.Semigroup as S@@ -102,6 +108,10 @@ import           Data.Vector.Unboxed as Unboxed import           Data.Vector.Storable as Storable +#ifdef HLINT+{-# ANN module "HLint: ignore Use uncurry" #-}+#endif+ -- $setup -- >>> :set -XNoOverloadedStrings -- >>> import Control.Lens@@ -189,6 +199,12 @@   _Wrapped' = iso getZipList ZipList   {-# INLINE _Wrapped' #-} +instance (t ~ NonEmpty b) => Rewrapped (NonEmpty a) t+instance Wrapped (NonEmpty a) where+  type Unwrapped (NonEmpty a) = (a, [a])+  _Wrapped' = iso (\(a :| as) -> (a, as)) (\(a,as) -> a :| as)+  {-# INLINE _Wrapped' #-}+ instance (t ~ Const a' x') => Rewrapped (Const a x) t instance Wrapped (Const a x) where   type Unwrapped (Const a x) = a@@ -213,11 +229,19 @@   _Wrapped' = iso getFirst First   {-# INLINE _Wrapped' #-} -instance (t ~ Last b) => Rewrapped (Last b) t+instance (t ~ Last b) => Rewrapped (Last a) t instance Wrapped (Last a) where   type Unwrapped (Last a) = Maybe a   _Wrapped' = iso getLast Last   {-# INLINE _Wrapped' #-}++#if MIN_VERSION_base(4,8,0)+instance (t ~ Alt g b) => Rewrapped (Alt f a) t+instance Wrapped (Alt f a) where+  type Unwrapped (Alt f a) = f a+  _Wrapped' = iso getAlt Alt+  {-# INLINE _Wrapped' #-}+#endif  instance (t ~ ArrowMonad m' a', ArrowApply m, ArrowApply m') => Rewrapped (ArrowMonad m a) t instance ArrowApply m => Wrapped (ArrowMonad m a) where