Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
- class Reduce v handler xs r where
Documentation
class Reduce v handler xs r where Source #
Reduce a polymorphic variant v xs
into r
using handlers.
This class is required in order to step through all the different types in a variant.
Case c ((:) Type x ([] Type)) r => Reduce Which (Switch c) ((:) Type x ([] Type)) r Source # | Terminating case of the loop, ensuring that a instance of |
(Case c ((:) Type x ((:) Type x' xs)) r, Reduce Which (Switch c) ((:) Type x' xs) r, Reiterate * c ((:) Type x ((:) Type x' xs))) => Reduce Which (Switch c) ((:) Type x ((:) Type x' xs)) r Source # |
|
Case (c n) ((:) Type x ([] Type)) r => Reduce Which (SwitchN c n) ((:) Type x ([] Type)) r Source # | Terminating case of the loop, ensuring that a instance of |
(Case (c n) ((:) Type x ((:) Type x' xs)) r, Reduce Which (SwitchN c ((+) n 1)) ((:) Type x' xs) r, ReiterateN * c n ((:) Type x ((:) Type x' xs))) => Reduce Which (SwitchN c n) ((:) Type x ((:) Type x' xs)) r Source # |
|