multirec-0.7.8: Generic programming for families of recursive datatypes

Copyright(c) 2008--2010 Universiteit Utrecht
LicenseBSD3
Maintainergenerics@haskell.org
Stabilityexperimental
Portabilitynon-portable
Safe HaskellSafe
LanguageHaskell2010

Generics.MultiRec.Eq

Contents

Description

Generic equality.

Synopsis

Generic equality

class HEq phi f where Source #

Minimal complete definition

heq

Methods

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

Instances

HEq phi U Source # 

Methods

heq :: (forall ix. phi ix -> r ix -> r ix -> Bool) -> phi ix -> U r ix -> U r ix -> Bool Source #

Eq a => HEq phi (K a) Source #

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

Methods

heq :: (forall ix. phi ix -> r ix -> r ix -> Bool) -> phi ix -> K a r ix -> K a r ix -> Bool Source #

El phi xi => HEq phi (I xi) Source # 

Methods

heq :: (forall ix. phi ix -> r ix -> r ix -> Bool) -> phi ix -> I xi r ix -> I xi r ix -> Bool Source #

(Constructor c, HEq phi f) => HEq phi (C c f) Source # 

Methods

heq :: (forall ix. phi ix -> r ix -> r ix -> Bool) -> phi ix -> C c f r ix -> C c f r ix -> Bool Source #

HEq phi f => HEq phi ((:>:) f ix) Source # 

Methods

heq :: (forall ix0. phi ix0 -> r ix0 -> r ix0 -> Bool) -> phi ix -> (f :>: ix) r ix -> (f :>: ix) r ix -> Bool Source #

(Eq1 f, HEq phi g) => HEq phi ((:.:) f g) Source # 

Methods

heq :: (forall ix. phi ix -> r ix -> r ix -> Bool) -> phi ix -> (f :.: g) r ix -> (f :.: g) r ix -> Bool Source #

(HEq phi f, HEq phi g) => HEq phi ((:*:) f g) Source # 

Methods

heq :: (forall ix. phi ix -> r ix -> r ix -> Bool) -> phi ix -> (f :*: g) r ix -> (f :*: g) r ix -> Bool Source #

(HEq phi f, HEq phi g) => HEq phi ((:+:) f g) Source # 

Methods

heq :: (forall ix. phi ix -> r ix -> r ix -> Bool) -> phi ix -> (f :+: g) r ix -> (f :+: g) r ix -> Bool Source #

class Eq1 f where Source #

Minimal complete definition

eq1

Methods

eq1 :: (a -> a -> Bool) -> f a -> f a -> Bool Source #

Instances

Eq1 [] Source # 

Methods

eq1 :: (a -> a -> Bool) -> [a] -> [a] -> Bool Source #

Eq1 Maybe Source # 

Methods

eq1 :: (a -> a -> Bool) -> Maybe a -> Maybe a -> Bool Source #

eq :: (Fam phi, HEq phi (PF phi)) => phi ix -> ix -> ix -> Bool Source #