multirec-0.7.3: Generic programming for families of recursive datatypes

Portabilitynon-portable
Stabilityexperimental
Maintainergenerics@haskell.org
Safe HaskellSafe-Infered

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) 
(Eq1 f, HEq phi g) => HEq phi (:.: f g) 
(HEq phi f, HEq phi g) => HEq phi (:*: f g) 
(HEq phi f, HEq phi g) => HEq phi (:+: f g) 

class Eq1 f whereSource

Methods

eq1 :: (a -> a -> Bool) -> f a -> f a -> BoolSource

Instances

Eq1 [] 
Eq1 Maybe 

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