Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
Instances
Matcher Something Source # | |
Defined in Control.Egison.Matcher |
class PairPat m a where Source #
pair :: (Matcher m, a ~ (b1, b2), m ~ Pair m1 m2) => Pattern b1 m1 ctx xs -> Pattern b2 m2 (ctx :++: xs) ys -> Pattern a m ctx (xs :++: ys) Source #
Pair a b |
class CollectionPat m a where Source #
nil :: (Matcher m, a ~ [a']) => Pattern a m ctx '[] Source #
cons :: (Matcher m, a ~ [a'], m ~ f m') => Pattern a' m' ctx xs -> Pattern a m (ctx :++: xs) ys -> Pattern a m ctx (xs :++: ys) Source #
join :: (Matcher m, a ~ [a']) => Pattern a m ctx xs -> Pattern a m (ctx :++: xs) ys -> Pattern a m ctx (xs :++: ys) Source #
Instances
Matcher m => CollectionPat (Set m) [a] Source # | |
Defined in Control.Egison.Matcher nil :: (Matcher (Set m), [a] ~ [a']) => Pattern [a] (Set m) ctx [] Source # cons :: (Matcher (Set m), [a] ~ [a'], Set m ~ f m') => Pattern a' m' ctx xs -> Pattern [a] (Set m) (ctx :++: xs) ys -> Pattern [a] (Set m) ctx (xs :++: ys) Source # join :: (Matcher (Set m), [a] ~ [a']) => Pattern [a] (Set m) ctx xs -> Pattern [a] (Set m) (ctx :++: xs) ys -> Pattern [a] (Set m) ctx (xs :++: ys) Source # | |
Matcher m => CollectionPat (Multiset m) [a] Source # | |
Defined in Control.Egison.Matcher nil :: (Matcher (Multiset m), [a] ~ [a']) => Pattern [a] (Multiset m) ctx [] Source # cons :: (Matcher (Multiset m), [a] ~ [a'], Multiset m ~ f m') => Pattern a' m' ctx xs -> Pattern [a] (Multiset m) (ctx :++: xs) ys -> Pattern [a] (Multiset m) ctx (xs :++: ys) Source # join :: (Matcher (Multiset m), [a] ~ [a']) => Pattern [a] (Multiset m) ctx xs -> Pattern [a] (Multiset m) (ctx :++: xs) ys -> Pattern [a] (Multiset m) ctx (xs :++: ys) Source # | |
Matcher m => CollectionPat (List m) [a] Source # | |
Defined in Control.Egison.Matcher nil :: (Matcher (List m), [a] ~ [a']) => Pattern [a] (List m) ctx [] Source # cons :: (Matcher (List m), [a] ~ [a'], List m ~ f m') => Pattern a' m' ctx xs -> Pattern [a] (List m) (ctx :++: xs) ys -> Pattern [a] (List m) ctx (xs :++: ys) Source # join :: (Matcher (List m), [a] ~ [a']) => Pattern [a] (List m) ctx xs -> Pattern [a] (List m) (ctx :++: xs) ys -> Pattern [a] (List m) ctx (xs :++: ys) Source # |
List a |
Instances
Matcher a => Matcher (List a) Source # | |
Defined in Control.Egison.Matcher | |
Matcher m => CollectionPat (List m) [a] Source # | |
Defined in Control.Egison.Matcher nil :: (Matcher (List m), [a] ~ [a']) => Pattern [a] (List m) ctx [] Source # cons :: (Matcher (List m), [a] ~ [a'], List m ~ f m') => Pattern a' m' ctx xs -> Pattern [a] (List m) (ctx :++: xs) ys -> Pattern [a] (List m) ctx (xs :++: ys) Source # join :: (Matcher (List m), [a] ~ [a']) => Pattern [a] (List m) ctx xs -> Pattern [a] (List m) (ctx :++: xs) ys -> Pattern [a] (List m) ctx (xs :++: ys) Source # | |
(Matcher m, Eq a, ValuePat m a) => ValuePat (List m) [a] Source # | |
Multiset a |
Instances
Matcher a => Matcher (Multiset a) Source # | |
Defined in Control.Egison.Matcher | |
Matcher m => CollectionPat (Multiset m) [a] Source # | |
Defined in Control.Egison.Matcher nil :: (Matcher (Multiset m), [a] ~ [a']) => Pattern [a] (Multiset m) ctx [] Source # cons :: (Matcher (Multiset m), [a] ~ [a'], Multiset m ~ f m') => Pattern a' m' ctx xs -> Pattern [a] (Multiset m) (ctx :++: xs) ys -> Pattern [a] (Multiset m) ctx (xs :++: ys) Source # join :: (Matcher (Multiset m), [a] ~ [a']) => Pattern [a] (Multiset m) ctx xs -> Pattern [a] (Multiset m) (ctx :++: xs) ys -> Pattern [a] (Multiset m) ctx (xs :++: ys) Source # | |
(Matcher m, Eq a, ValuePat m a) => ValuePat (Multiset m) [a] Source # | |
Set a |
Instances
Matcher a => Matcher (Set a) Source # | |
Defined in Control.Egison.Matcher | |
Matcher m => CollectionPat (Set m) [a] Source # | |
Defined in Control.Egison.Matcher nil :: (Matcher (Set m), [a] ~ [a']) => Pattern [a] (Set m) ctx [] Source # cons :: (Matcher (Set m), [a] ~ [a'], Set m ~ f m') => Pattern a' m' ctx xs -> Pattern [a] (Set m) (ctx :++: xs) ys -> Pattern [a] (Set m) ctx (xs :++: ys) Source # join :: (Matcher (Set m), [a] ~ [a']) => Pattern [a] (Set m) ctx xs -> Pattern [a] (Set m) (ctx :++: xs) ys -> Pattern [a] (Set m) ctx (xs :++: ys) Source # | |
(Matcher m, Eq a, Ord a, ValuePat m a) => ValuePat (Set m) [a] Source # | |