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

Safe HaskellSafe
LanguageHaskell2010

Data.Diverse.Emit

Synopsis

Documentation

class Emit e xs r where Source #

Emit can generate a value, and is differentiated with an additional xs typelist

Minimal complete definition

emit

Methods

emit :: e xs r -> r Source #

Instances

Case c ((:) Type x xs) r => Emit Type (Via * c) ((:) Type x xs) r Source # 

Methods

emit :: (Type ': x) xs r r -> r Source #

Case (c n) ((:) Type x xs) r => Emit Type (ViaN * c n) ((:) Type x xs) r Source # 

Methods

emit :: (Type ': x) xs r r -> r Source #