sweet-egison 0.1.0.2 → 0.1.0.3
raw patch · 2 files changed
+11/−1 lines, 2 filesPVP: minor bump suggested
API additions: PVP suggests at least a minor version bump
API changes (from Hackage documentation)
+ Control.Egison.Matcher.Pair: instance (GHC.Classes.Eq a1, Control.Egison.Matcher.Matcher m1 a1, Control.Egison.Matcher.ValuePattern m1 a1, GHC.Classes.Eq a2, Control.Egison.Matcher.Matcher m2 a2, Control.Egison.Matcher.ValuePattern m2 a2) => Control.Egison.Matcher.ValuePattern (Control.Egison.Matcher.Pair.Pair m1 m2) (a1, a2)
Files
- src/Control/Egison/Matcher/Pair.hs +10/−0
- sweet-egison.cabal +1/−1
src/Control/Egison/Matcher/Pair.hs view
@@ -26,3 +26,13 @@ tuple2M :: Pair m1 m2 -> (t1, t2) -> (m1, m2) tuple2M (Pair m1 m2) _ = (m1, m2)++instance (Eq a1, Matcher m1 a1, ValuePattern m1 a1, Eq a2, Matcher m2 a2, ValuePattern m2 a2) => ValuePattern (Pair m1 m2) (a1, a2) where+ value (e1, e2) () (Pair m1 m2) (v1, v2) = if eqAs m1 e1 v1 && eqAs m2 e2 v2 then pure () else mzero++eqAs :: (Matcher m t, ValuePattern m t) => m -> t -> t -> Bool+eqAs m x y =+ match dfs y m+ [ [mc| #x -> True |]+ , [mc| _ -> False |]+ ]
sweet-egison.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.0 name: sweet-egison-version: 0.1.0.2+version: 0.1.0.3 synopsis: Shallow embedding implementation of non-linear pattern matching