Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- class Case c (xs :: [Type]) where
- case' :: c xs -> Head xs -> CaseResult c (Head xs)
Documentation
class Case c (xs :: [Type]) where Source #
This class allows defining handlers that can handle the Head
type in the xs
typelist.
In conjunction with Reiterate
, you can define handlers that can handle all
the types in the xs
typelist.
See Data.Diverse.CaseFunc and Data.Diverse.Cases.
case' :: c xs -> Head xs -> CaseResult c (Head xs) Source #
Return the handler/continuation when x is observed.
Instances
k x => Case (CaseFunc' k) (x ': xs) Source # | |
Defined in Data.Diverse.CaseFunc | |
UniqueMember (Head xs -> r) fs => Case (Cases fs r) xs Source # | UndecidableInstances because |
Defined in Data.Diverse.Cases | |
k x => Case (CaseFunc k r) (x ': xs) Source # | |
Defined in Data.Diverse.CaseFunc | |
k (f x) => Case (CaseIxedCont k r) (f x ': xs) Source # | |
Defined in Data.Diverse.CaseIxed case' :: CaseIxedCont k r (f x ': xs) -> Head (f x ': xs) -> CaseResult (CaseIxedCont k r) (Head (f x ': xs)) Source # | |
k (f x) => Case (CaseIxedFunc k r) (f x ': xs) Source # | |
Defined in Data.Diverse.CaseIxed case' :: CaseIxedFunc k r (f x ': xs) -> Head (f x ': xs) -> CaseResult (CaseIxedFunc k r) (Head (f x ': xs)) Source # | |
MemberAt n (Head xs -> r) fs => Case (CasesN fs r n) xs Source # | UndecidableInstances because |
Defined in Data.Diverse.Cases | |
(k (f x), k1 f, k0 x) => Case (CaseFunc1' k k1 k0) (f x ': xs) Source # | |
Defined in Data.Diverse.CaseFunc case' :: CaseFunc1' k k1 k0 (f x ': xs) -> Head (f x ': xs) -> CaseResult (CaseFunc1' k k1 k0) (Head (f x ': xs)) Source # | |
k (f x) => Case (CaseIxedCont_ k f r) (f x ': xs) Source # | |
Defined in Data.Diverse.CaseIxed case' :: CaseIxedCont_ k f r (f x ': xs) -> Head (f x ': xs) -> CaseResult (CaseIxedCont_ k f r) (Head (f x ': xs)) Source # | |
k (f x) => Case (CaseIxedFuncM k r m) (f x ': xs) Source # | |
Defined in Data.Diverse.CaseIxed case' :: CaseIxedFuncM k r m (f x ': xs) -> Head (f x ': xs) -> CaseResult (CaseIxedFuncM k r m) (Head (f x ': xs)) Source # | |
k (f x) => Case (CaseIxedFunc_ k f r) (f x ': xs) Source # | |
Defined in Data.Diverse.CaseIxed case' :: CaseIxedFunc_ k f r (f x ': xs) -> Head (f x ': xs) -> CaseResult (CaseIxedFunc_ k f r) (Head (f x ': xs)) Source # | |
(k (f x), k1 f, k0 x) => Case (CaseFunc1 k k1 k0 r) (f x ': xs) Source # | |
Defined in Data.Diverse.CaseFunc | |
(k (f x), k1 f, k0 x) => Case (CaseIxedCont1 k k1 k0 r) (f x ': xs) Source # | |
Defined in Data.Diverse.CaseIxed case' :: CaseIxedCont1 k k1 k0 r (f x ': xs) -> Head (f x ': xs) -> CaseResult (CaseIxedCont1 k k1 k0 r) (Head (f x ': xs)) Source # | |
(k (f x), k1 f, k0 x) => Case (CaseIxedFunc1 k k1 k0 r) (f x ': xs) Source # | |
Defined in Data.Diverse.CaseIxed case' :: CaseIxedFunc1 k k1 k0 r (f x ': xs) -> Head (f x ': xs) -> CaseResult (CaseIxedFunc1 k k1 k0 r) (Head (f x ': xs)) Source # | |
k (f x) => Case (CaseIxedFuncM_ k f r m) (f x ': xs) Source # | |
Defined in Data.Diverse.CaseIxed case' :: CaseIxedFuncM_ k f r m (f x ': xs) -> Head (f x ': xs) -> CaseResult (CaseIxedFuncM_ k f r m) (Head (f x ': xs)) Source # | |
(k (f x), k1 f, k0 x) => Case (CaseFunc1_ k k1 k0 r x) (f x ': xs) Source # | |
Defined in Data.Diverse.CaseFunc case' :: CaseFunc1_ k k1 k0 r x (f x ': xs) -> Head (f x ': xs) -> CaseResult (CaseFunc1_ k k1 k0 r x) (Head (f x ': xs)) Source # | |
(k (f x), k1 f, k0 x) => Case (CaseIxedCont1_ k k1 k0 f r) (f x ': xs) Source # | |
Defined in Data.Diverse.CaseIxed case' :: CaseIxedCont1_ k k1 k0 f r (f x ': xs) -> Head (f x ': xs) -> CaseResult (CaseIxedCont1_ k k1 k0 f r) (Head (f x ': xs)) Source # | |
(k (f x), k1 f, k0 x) => Case (CaseIxedFunc1_ k k1 k0 f r) (f x ': xs) Source # | |
Defined in Data.Diverse.CaseIxed case' :: CaseIxedFunc1_ k k1 k0 f r (f x ': xs) -> Head (f x ': xs) -> CaseResult (CaseIxedFunc1_ k k1 k0 f r) (Head (f x ': xs)) Source # | |
(k (f x), k1 f, k0 x) => Case (CaseIxedFuncM1 k k1 k0 r m) (f x ': xs) Source # | |
Defined in Data.Diverse.CaseIxed case' :: CaseIxedFuncM1 k k1 k0 r m (f x ': xs) -> Head (f x ': xs) -> CaseResult (CaseIxedFuncM1 k k1 k0 r m) (Head (f x ': xs)) Source # | |
(k (f x), k1 f, k0 x) => Case (CaseIxedFuncM1_ k k1 k0 f r m) (f x ': xs) Source # | |
Defined in Data.Diverse.CaseIxed case' :: CaseIxedFuncM1_ k k1 k0 f r m (f x ': xs) -> Head (f x ': xs) -> CaseResult (CaseIxedFuncM1_ k k1 k0 f r m) (Head (f x ': xs)) Source # |