Safe Haskell | Safe |
---|---|
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 => (HList ctx -> m -> a -> [MList ctx vs]) -> Pattern a m ctx vs |
Instances
Matcher Integer Source # | |
Defined in Control.Egison.Matcher | |
Matcher Eql Source # | |
Defined in Control.Egison.Matcher | |
Matcher Something Source # | |
Defined in Control.Egison.Matcher | |
Matcher a => Matcher (Set a) Source # | |
Defined in Control.Egison.Matcher | |
Matcher a => Matcher (Multiset a) Source # | |
Defined in Control.Egison.Matcher | |
Matcher a => Matcher (List a) Source # | |
Defined in Control.Egison.Matcher | |
(Matcher a, Matcher b) => Matcher (Pair a b) Source # | |
Defined in Control.Egison.Matcher |
data MatchClause a m b Source #
Matcher m => MatchClause (Pattern a m '[] vs) (HList vs -> b) |