data-diverse-0.11.0.0: Extensible records and polymorphic variants.

Safe HaskellSafe
LanguageHaskell2010

Data.Diverse.Case

Synopsis

Documentation

class Case c xs r 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.CaseTypeable and Data.Diverse.Cases.

Minimal complete definition

case'

Methods

case' :: c xs r -> Head xs -> r Source #

Return the handler/continuation when x is observed.

Instances

Typeable Type (Head Type xs) => Case CaseTypeable xs r Source # 

Methods

case' :: CaseTypeable xs r -> Head Type xs -> r Source #

UniqueMember * (Head * xs -> r) fs => Case (Cases fs) xs r Source #

UndecidableInstances because fs appers more often.

Methods

case' :: Cases fs xs r -> Head Type xs -> r Source #

MemberAt * n (Head * xs -> r) fs => Case (CasesN fs n) xs r Source #

UndecidableInstances because fs appears more often.

Methods

case' :: CasesN fs n xs r -> Head Type xs -> r Source #