Safe Haskell  Safe 

Language  Haskell2010 
 class Reduce v handler r where
Documentation
class Reduce v handler r where Source #
Convert something v
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 ((:) Type x ([] Type))) (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 ((:) Type x' xs)) (Switch c ((:) Type x' xs)) r, Reiterate * c ((:) Type x ((:) Type x' xs))) => Reduce (Which ((:) Type x ((:) Type x' xs))) (Switch c ((:) Type x ((:) Type x' xs))) r Source # 

Case (c n) ((:) Type x ([] Type)) r => Reduce (Which ((:) Type x ([] Type))) (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 ((:) Type x' xs)) (SwitchN c ((+) n 1) ((:) Type x' xs)) r, ReiterateN * c n ((:) Type x ((:) Type x' xs))) => Reduce (Which ((:) Type x ((:) Type x' xs))) (SwitchN c n ((:) Type x ((:) Type x' xs))) r Source # 
