Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
data Pattern a m ctx vs where Source #
Wildcard :: Pattern a m ctx '[] | |
PatVar :: String -> Pattern a m ctx '[a] | |
AndPat :: Pattern a m ctx vs -> Pattern a m (ctx :++: vs) vs' -> Pattern a m ctx (vs :++: vs') | |
OrPat :: Pattern a m ctx vs -> Pattern a m ctx vs -> Pattern a m ctx vs | |
NotPat :: Pattern a m ctx '[] -> Pattern a m ctx '[] | |
PredicatePat :: (HList ctx -> a -> Bool) -> Pattern a m ctx '[] | |
Pattern :: Matcher m a => (HList ctx -> m -> a -> [MList ctx vs]) -> Pattern a m ctx vs |
Instances
Integral a => Matcher Integer a Source # | |
Defined in Control.Egison.Matcher | |
Matcher Eql a Source # | |
Defined in Control.Egison.Matcher | |
Matcher Something a Source # | |
Defined in Control.Egison.Matcher | |
Matcher m a => Matcher (Set m) [a] Source # | |
Defined in Control.Egison.Matcher | |
Matcher m a => Matcher (Multiset m) [a] Source # | |
Defined in Control.Egison.Matcher | |
Matcher m a => Matcher (List m) [a] Source # | |
Defined in Control.Egison.Matcher | |
(Matcher m1 a1, Matcher m2 a2) => Matcher (Pair m1 m2) (a1, a2) Source # | |
Defined in Control.Egison.Matcher |
data MatchClause a m b Source #
Matcher m a => MatchClause (Pattern a m '[] vs) (HList vs -> b) |