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.Multi.Ordering

Contents

Description

This module defines ordering of signatures, which lifts to ordering of terms and contexts.

Synopsis

Documentation

class PEq a => POrd a where Source #

Ordering of parametric values.

Minimal complete definition

pcompare

Methods

pcompare :: a i -> a j -> FreshM Ordering Source #

Instances
POrd Name Source # 
Instance details

Defined in Data.Comp.Param.Multi.Ordering

Methods

pcompare :: Name i -> Name j -> FreshM Ordering Source #

Ord a => POrd (K a) Source # 
Instance details

Defined in Data.Comp.Param.Multi.Ordering

Methods

pcompare :: K a i -> K a j -> FreshM Ordering Source #

(OrdHD f, POrd a) => POrd (Cxt h f Name a) Source # 
Instance details

Defined in Data.Comp.Param.Multi.Ordering

Methods

pcompare :: Cxt h f Name a i -> Cxt h f Name a j -> FreshM Ordering Source #

class EqHD f => OrdHD f where Source #

Signature ordering. An instance OrdHD f gives rise to an instance Ord (Term f).

Minimal complete definition

compareHD

Methods

compareHD :: POrd a => f Name a i -> f Name a j -> FreshM Ordering Source #

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

OrdHD is propagated through sums.

Instance details

Defined in Data.Comp.Param.Multi.Ordering

Methods

compareHD :: POrd a => (f :+: g) Name a i -> (f :+: g) Name a j -> FreshM Ordering Source #

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

From an OrdHD difunctor an Ord instance of the corresponding term type can be derived.

Instance details

Defined in Data.Comp.Param.Multi.Ordering

Methods

compareHD :: POrd a => Cxt h f Name a i -> Cxt h f Name a j -> FreshM Ordering Source #

Orphan instances

(HDifunctor f, OrdHD f) => Ord (Term f i) Source #

Ordering of terms.

Instance details

Methods

compare :: Term f i -> Term f i -> Ordering #

(<) :: Term f i -> Term f i -> Bool #

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

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

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

max :: Term f i -> Term f i -> Term f i #

min :: Term f i -> Term f i -> Term f i #