multirec-0.7.9: 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
  • class HEq phi f where
    • heq :: (forall ix. phi ix -> r ix -> r ix -> Bool) -> phi ix -> f r ix -> f r ix -> Bool
  • class Eq1 f where
  • eq :: (Fam phi, HEq phi (PF phi)) => phi ix -> ix -> ix -> Bool

Generic equality

class HEq phi f where Source #

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 # 
Instance details

Defined in Generics.MultiRec.Eq

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.

Instance details

Defined in Generics.MultiRec.Eq

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 # 
Instance details

Defined in Generics.MultiRec.Eq

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 # 
Instance details

Defined in Generics.MultiRec.Eq

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 # 
Instance details

Defined in Generics.MultiRec.Eq

Methods

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

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

Defined in Generics.MultiRec.Eq

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 # 
Instance details

Defined in Generics.MultiRec.Eq

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 # 
Instance details

Defined in Generics.MultiRec.Eq

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 #

Methods

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

Instances
Eq1 [] Source # 
Instance details

Defined in Generics.MultiRec.Eq

Methods

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

Eq1 Maybe Source # 
Instance details

Defined in Generics.MultiRec.Eq

Methods

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

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