unbound-generics 0.3.3 → 0.3.4
raw patch · 4 files changed
+11/−49 lines, 4 filesdep ~containers
Dependency ranges changed: containers
Files
- Changelog.md +5/−1
- examples/Prof.hs +0/−42
- src/Unbound/Generics/PermM.hs +1/−1
- unbound-generics.cabal +5/−5
Changelog.md view
@@ -1,4 +1,8 @@-# NEXT+# 0.3.4++* Bump `containers` upper bound to support `0.6`.+ (GHC 8.6.1 support)+ Thanks Christiaan Baaij. # 0.3.3
− examples/Prof.hs
@@ -1,42 +0,0 @@-{-# language GADTs, RankNTypes #-}-module Prof where--import Data.Profunctor--data Shop a b s t where- Shop :: (s -> a) -> (s -> b -> t) -> Shop a b s t--type Optic p s t a b = p a b -> p s t-type Lens s t a b = forall p . (Strong p) => Optic p s t a b--lens :: (s -> a) -> (s -> b -> t) -> Lens s t a b-lens get set pab = dimap (\s -> (s, get s)) (uncurry set) (second' pab)--instance Profunctor (Shop a b) where- dimap f g (Shop get set) = Shop (get . f) (\s -> g . set (f s))--instance Strong (Shop a b) where- first' (Shop get set) = Shop (get . fst) (\(s,c) b -> (set s b, c))--withLens :: Lens s t a b -> ((s -> a) -> (s -> b -> t) -> r) -> r-withLens l k = case l (Shop id (const id)) of- Shop getter setter -> k getter setter---type Prism s t a b = forall p . (Choice p) => Optic p s t a b--prism :: (s -> Either t a) -> (b -> t) -> Prism s t a b-prism view review pab = dimap view (either id review) (right' pab)--data Market a b s t where- Market :: (s -> Either t a) -> (b -> t) -> Market a b s t--instance Profunctor (Market a b) where- dimap f g (Market view review) = Market (either (Left . g) Right . (view . f)) (g . review)--instance Choice (Market a b) where- left' (Market view review) = Market (either (either (Left . Left) Right . view) (Left . Right)) (Left . review)--withPrism :: Prism s t a b -> ((s -> Either t a) -> (b -> t) -> r) -> r-withPrism l k = case l (Market Right id) of- Market view review -> k view review
src/Unbound/Generics/PermM.hs view
@@ -119,7 +119,7 @@ join :: Ord a => Perm a -> Perm a -> Maybe (Perm a) join (Perm p1) (Perm p2) = let overlap = M.intersectionWith (==) p1 p2 in- if M.fold (&&) True overlap then+ if M.foldr (&&) True overlap then Just (Perm (M.union p1 p2)) else Nothing
unbound-generics.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/ name: unbound-generics-version: 0.3.3+version: 0.3.4 synopsis: Support for programming with names and binders using GHC Generics description: Specify the binding structure of your data type with an expressive set of type combinators, and unbound-generics@@ -29,7 +29,7 @@ README.md, Changelog.md cabal-version: >=1.10-tested-with: GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.*, GHC == 8.2.*, GHC == 8.4.*+tested-with: GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.*, GHC == 8.2.*, GHC == 8.4.*, GHC == 8.6.* library exposed-modules: Unbound.Generics.LocallyNameless@@ -50,15 +50,15 @@ Unbound.Generics.LocallyNameless.TH Unbound.Generics.PermM Unbound.Generics.LocallyNameless.Subst- -- other-modules: - -- other-extensions: + -- other-modules:+ -- other-extensions: build-depends: base >=4.6 && <5, template-haskell >= 2.8.0.0, deepseq >= 1.3.0.0, mtl >= 2.1, transformers >= 0.3, transformers-compat >= 0.3,- containers == 0.5.*,+ containers >= 0.5 && < 0.7, contravariant >= 0.5, profunctors >= 4.0, ansi-wl-pprint >= 0.6.7.2 && < 0.7,