Hello community, here is the log from the commit of package ghc-microlens-mtl for openSUSE:Factory checked in at 2016-11-10 13:25:12 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghc-microlens-mtl (Old) and /work/SRC/openSUSE:Factory/.ghc-microlens-mtl.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "ghc-microlens-mtl" Changes: -------- --- /work/SRC/openSUSE:Factory/ghc-microlens-mtl/ghc-microlens-mtl.changes 2016-11-02 12:36:29.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.ghc-microlens-mtl.new/ghc-microlens-mtl.changes 2016-11-10 13:25:14.000000000 +0100 @@ -1,0 +2,5 @@ +Wed Aug 17 18:27:19 UTC 2016 - psimons@suse.com + +- Update to version 0.1.10.0 revision 0 with cabal2obs. + +------------------------------------------------------------------- Old: ---- microlens-mtl-0.1.9.0.tar.gz New: ---- microlens-mtl-0.1.10.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghc-microlens-mtl.spec ++++++ --- /var/tmp/diff_new_pack.WfBi4E/_old 2016-11-10 13:25:16.000000000 +0100 +++ /var/tmp/diff_new_pack.WfBi4E/_new 2016-11-10 13:25:16.000000000 +0100 @@ -18,11 +18,11 @@ %global pkg_name microlens-mtl Name: ghc-%{pkg_name} -Version: 0.1.9.0 +Version: 0.1.10.0 Release: 0 Summary: Microlens support for Reader/Writer/State from mtl License: BSD-3-Clause -Group: System/Libraries +Group: Development/Languages/Other Url: https://hackage.haskell.org/package/%{pkg_name} Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz BuildRequires: ghc-Cabal-devel @@ -55,15 +55,12 @@ %prep %setup -q -n %{pkg_name}-%{version} - %build %ghc_lib_build - %install %ghc_lib_install - %post devel %ghc_pkg_recache ++++++ microlens-mtl-0.1.9.0.tar.gz -> microlens-mtl-0.1.10.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/microlens-mtl-0.1.9.0/CHANGELOG.md new/microlens-mtl-0.1.10.0/CHANGELOG.md --- old/microlens-mtl-0.1.9.0/CHANGELOG.md 2016-07-14 12:02:37.000000000 +0200 +++ new/microlens-mtl-0.1.10.0/CHANGELOG.md 2016-08-03 11:20:21.000000000 +0200 @@ -1,3 +1,7 @@ +# 0.1.10.0 + +* Added `=` and `<.=`. + # 0.1.9.0 * Added `?=` and `<~`. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/microlens-mtl-0.1.9.0/microlens-mtl.cabal new/microlens-mtl-0.1.10.0/microlens-mtl.cabal --- old/microlens-mtl-0.1.9.0/microlens-mtl.cabal 2016-07-14 12:02:37.000000000 +0200 +++ new/microlens-mtl-0.1.10.0/microlens-mtl.cabal 2016-08-03 11:20:21.000000000 +0200 @@ -1,5 +1,5 @@ name: microlens-mtl -version: 0.1.9.0 +version: 0.1.10.0 synopsis: microlens support for Reader/Writer/State from mtl description: This package contains functions (like 'view' or '+=') which work on 'MonadReader', 'MonadWriter', and 'MonadState' from the mtl package. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/microlens-mtl-0.1.9.0/src/Lens/Micro/Mtl.hs new/microlens-mtl-0.1.10.0/src/Lens/Micro/Mtl.hs --- old/microlens-mtl-0.1.9.0/src/Lens/Micro/Mtl.hs 2016-07-14 12:02:37.000000000 +0200 +++ new/microlens-mtl-0.1.10.0/src/Lens/Micro/Mtl.hs 2016-08-03 11:20:21.000000000 +0200 @@ -34,8 +34,8 @@ (+=), (-=), (*=), (//=), -- * Setting with passthrough - (<%=), (<<%=), - (<<.=), + (<%=), (<.=), (=), + (<<%=), (<<.=), -- * Zooming zoom, @@ -120,7 +120,7 @@ infix 4 .=, %=, ?= -infix 4 <<.=, <<%=, <%= +infix 4 <<.=, <<%=, <%=, <.=, = infix 4 +=, -=, *=, //= infixr 2 <~ @@ -266,7 +266,7 @@ @ l '<<.=' b = do old <- 'use' l - l '.=' f + l '.=' b return old @ -} @@ -274,6 +274,34 @@ l <<.= b = l %%= (\a -> (a, b)) {-# INLINE (<<.=) #-} +{- | +Set state and return new value. + +@ +l '<.=' b = do + l '.=' b + return b +@ +-} +(<.=) :: MonadState s m => LensLike ((,) b) s s a b -> b -> m b +l <.= b = l <%= const b +{-# INLINE (<.=) #-} + +{- | +('=') is a version of ('<.=') that wraps the value into 'Just' before setting. + +@ +l '=' b = do + l '.=' Just b + 'return' b +@ + +It can be useful in combination with 'at'. +-} +(=) :: MonadState s m => LensLike ((,) b) s s a (Maybe b) -> b -> m b +l = b = l %%= const (b, Just b) +{-# INLINE (=) #-} + (%%=) :: MonadState s m => LensLike ((,) r) s s a b -> (a -> (r, b)) -> m r #if MIN_VERSION_mtl(2,1,1) l %%= f = State.state (l f)