compdata-param-0.9.2: Parametric Compositional Data Types

Copyright(c) 2011 Patrick Bahr Tom Hvitved
LicenseBSD3
MaintainerTom Hvitved <hvitved@diku.dk>
Stabilityexperimental
Portabilitynon-portable (GHC Extensions)
Safe HaskellNone
LanguageHaskell98

Data.Comp.Param.Equality

Contents

Description

This module defines equality for signatures, which lifts to equality for terms.

Synopsis
  • class PEq a where
    • class EqD f where

      Documentation

      class PEq a where Source #

      Equality on parametric values. The equality test is performed inside the FreshM monad for generating fresh identifiers.

      Minimal complete definition

      peq

      Methods

      peq :: a -> a -> FreshM Bool Source #

      Instances
      Eq a => PEq a Source # 
      Instance details

      Defined in Data.Comp.Param.Equality

      Methods

      peq :: a -> a -> FreshM Bool Source #

      PEq a => PEq [a] Source # 
      Instance details

      Defined in Data.Comp.Param.Equality

      Methods

      peq :: [a] -> [a] -> FreshM Bool Source #

      (EqD f, PEq a) => PEq (Cxt h f Name a) Source # 
      Instance details

      Defined in Data.Comp.Param.Equality

      Methods

      peq :: Cxt h f Name a -> Cxt h f Name a -> FreshM Bool Source #

      class EqD f where Source #

      Signature equality. An instance EqD f gives rise to an instance Eq (Term f). The equality test is performed inside the FreshM monad for generating fresh identifiers.

      Minimal complete definition

      eqD

      Methods

      eqD :: PEq a => f Name a -> f Name a -> FreshM Bool Source #

      Instances
      (EqD f, EqD g) => EqD (f :+: g) Source #

      EqD is propagated through sums.

      Instance details

      Defined in Data.Comp.Param.Equality

      Methods

      eqD :: PEq a => (f :+: g) Name a -> (f :+: g) Name a -> FreshM Bool Source #

      EqD f => EqD (Cxt h f) Source #

      From an EqD difunctor an Eq instance of the corresponding term type can be derived.

      Instance details

      Defined in Data.Comp.Param.Equality

      Methods

      eqD :: PEq a => Cxt h f Name a -> Cxt h f Name a -> FreshM Bool Source #

      Orphan instances

      (Difunctor f, EqD f) => Eq (Term f) Source #

      Equality on terms.

      Instance details

      Methods

      (==) :: Term f -> Term f -> Bool #

      (/=) :: Term f -> Term f -> Bool #