multirec-0.4.1: Generic programming for families of recursive datatypes

Portabilitynon-portable
Stabilityexperimental
Maintainergenerics@haskell.org

Generics.MultiRec.Eq

Contents

Description

Generic equality.

Synopsis

Generic equality

class HEq phi f whereSource

Methods

heq :: (forall ix. phi ix -> r ix -> r ix -> Bool) -> phi ix -> f r ix -> f r ix -> BoolSource

Instances

HEq phi U 
Eq a => HEq phi (K a)

For constant types, we make use of the standard equality function.

El phi xi => HEq phi (I xi) 
(Constructor c, HEq phi f) => HEq phi (C c f) 
HEq phi f => HEq phi (:>: f ix) 
(HEq phi f, HEq phi g) => HEq phi (:*: f g) 
(HEq phi f, HEq phi g) => HEq phi (:+: f g) 

eq :: (Fam phi, HEq phi (PF phi)) => phi ix -> ix -> ix -> BoolSource