list-zipper 0.0.4 → 0.0.5
raw patch · 3 files changed
+43/−14 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Data.ListZipper: getLeft :: ListZipperOp a a
+ Data.ListZipper: getRight :: ListZipperOp a a
+ Data.ListZipper: liftListZipperOp :: Maybe b -> ListZipperOp a b
Files
- changelog.md +4/−0
- list-zipper.cabal +1/−1
- src/Data/ListZipper.hs +38/−13
changelog.md view
@@ -1,3 +1,7 @@+0.0.5++* more function+ 0.0.4 * lots more functions
list-zipper.cabal view
@@ -1,5 +1,5 @@ name: list-zipper-version: 0.0.4+version: 0.0.5 license: BSD3 license-file: LICENCE author: Queensland Functional Programming Lab <oᴉ˙ldɟb@llǝʞsɐɥ>
src/Data/ListZipper.hs view
@@ -32,7 +32,10 @@ , ListZipperOp' , HasListZipperOp(..) , AsListZipperOp(..)+, liftListZipperOp , getFocus+, getLeft+, getRight , getRightz , getLeftz , getList@@ -521,33 +524,59 @@ k z <!> (z & f () ^. _Wrapped) ) +liftListZipperOp ::+ Maybe b+ -> ListZipperOp a b+liftListZipperOp m =+ ListZipperOp (\z ->+ (\b -> (z, b)) <$> m+ )+ getFocus :: ListZipperOp a a getFocus =- ListZipperOp (\z -> Just (z, z ^. focus))+ reader (^. focus) +getLeft ::+ ListZipperOp a a+getLeft =+ do z <- get+ case z of+ ListZipper (l:_) _ _ ->+ pure l+ ListZipper [] _ _ ->+ mempty++getRight ::+ ListZipperOp a a+getRight =+ do z <- get+ case z of+ ListZipper _ _ (r:_) ->+ pure r+ ListZipper _ _ [] ->+ mempty+ getRightz :: ListZipperOp a [a] getRightz =- ListZipperOp (\z -> Just (z, z ^. rightz))+ reader (^. rightz) getLeftz :: ListZipperOp a [a] getLeftz =- ListZipperOp (\z -> Just (z, z ^. leftz))+ reader (^. leftz) getList :: ListZipperOp a [a] getList =- ListZipperOp (\z -> Just (z, list z))+ reader list mkListZipperOp :: (ListZipper a -> Maybe b) -> ListZipperOp a b mkListZipperOp f = - ListZipperOp (\z ->- (\a -> (z, a)) <$> f z- )+ get >>= liftListZipperOp . f (*>>) :: (ListZipper a -> Maybe b)@@ -677,12 +706,8 @@ ListZipperOp a x -> ListZipper a -> [a]-execOpList' o z =- case execOpList o z of- Nothing ->- []- Just x ->- x+execOpList' o =+ fromMaybe [] . execOpList o ($$>) :: ListZipperOp a x