compdata-0.11: Compositional Data Types

Copyright(c) 2010-2011 Patrick Bahr
LicenseBSD3
MaintainerPatrick Bahr <paba@diku.dk>
Stabilityexperimental
Portabilitynon-portable (GHC Extensions)
Safe HaskellNone
LanguageHaskell98

Data.Comp.Ordering

Contents

Description

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

Synopsis

Documentation

class EqF f => OrdF f where Source #

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

Minimal complete definition

compareF

Methods

compareF :: Ord a => f a -> f a -> Ordering Source #

Orphan instances

OrdF [] Source # 

Methods

compareF :: Ord a => [a] -> [a] -> Ordering Source #

OrdF Maybe Source # 

Methods

compareF :: Ord a => Maybe a -> Maybe a -> Ordering Source #

Ord a0 => OrdF ((,) a0) Source # 

Methods

compareF :: Ord a => (a0, a) -> (a0, a) -> Ordering Source #

(Ord a0, Ord b0) => OrdF ((,,) a0 b0) Source # 

Methods

compareF :: Ord a => (a0, b0, a) -> (a0, b0, a) -> Ordering Source #

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

Methods

compareF :: Ord a => Cxt h f a -> Cxt h f a -> Ordering Source #

(OrdF f, Ord a) => Ord (Cxt h f a) Source #

From an OrdF functor an Ord instance of the corresponding term type can be derived.

Methods

compare :: Cxt h f a -> Cxt h f a -> Ordering #

(<) :: Cxt h f a -> Cxt h f a -> Bool #

(<=) :: Cxt h f a -> Cxt h f a -> Bool #

(>) :: Cxt h f a -> Cxt h f a -> Bool #

(>=) :: Cxt h f a -> Cxt h f a -> Bool #

max :: Cxt h f a -> Cxt h f a -> Cxt h f a #

min :: Cxt h f a -> Cxt h f a -> Cxt h f a #

(Ord a0, Ord b0, Ord c0) => OrdF ((,,,) a0 b0 c0) Source # 

Methods

compareF :: Ord a => (a0, b0, c0, a) -> (a0, b0, c0, a) -> Ordering Source #

(OrdF f, OrdF g) => OrdF ((:+:) * f g) Source #

OrdF is propagated through sums.

Methods

compareF :: Ord a => (* :+: f) g a -> (* :+: f) g a -> Ordering Source #

(Ord a0, Ord b0, Ord c0, Ord d0) => OrdF ((,,,,) a0 b0 c0 d0) Source # 

Methods

compareF :: Ord a => (a0, b0, c0, d0, a) -> (a0, b0, c0, d0, a) -> Ordering Source #

(Ord a0, Ord b0, Ord c0, Ord d0, Ord e0) => OrdF ((,,,,,) a0 b0 c0 d0 e0) Source # 

Methods

compareF :: Ord a => (a0, b0, c0, d0, e0, a) -> (a0, b0, c0, d0, e0, a) -> Ordering Source #

(Ord a0, Ord b0, Ord c0, Ord d0, Ord e0, Ord f0) => OrdF ((,,,,,,) a0 b0 c0 d0 e0 f0) Source # 

Methods

compareF :: Ord a => (a0, b0, c0, d0, e0, f0, a) -> (a0, b0, c0, d0, e0, f0, a) -> Ordering Source #

(Ord a0, Ord b0, Ord c0, Ord d0, Ord e0, Ord f0, Ord g0) => OrdF ((,,,,,,,) a0 b0 c0 d0 e0 f0 g0) Source # 

Methods

compareF :: Ord a => (a0, b0, c0, d0, e0, f0, g0, a) -> (a0, b0, c0, d0, e0, f0, g0, a) -> Ordering Source #

(Ord a0, Ord b0, Ord c0, Ord d0, Ord e0, Ord f0, Ord g0, Ord h0) => OrdF ((,,,,,,,,) a0 b0 c0 d0 e0 f0 g0 h0) Source # 

Methods

compareF :: Ord a => (a0, b0, c0, d0, e0, f0, g0, h0, a) -> (a0, b0, c0, d0, e0, f0, g0, h0, a) -> Ordering Source #

(Ord a0, Ord b0, Ord c0, Ord d0, Ord e0, Ord f0, Ord g0, Ord h0, Ord i0) => OrdF ((,,,,,,,,,) a0 b0 c0 d0 e0 f0 g0 h0 i0) Source # 

Methods

compareF :: Ord a => (a0, b0, c0, d0, e0, f0, g0, h0, i0, a) -> (a0, b0, c0, d0, e0, f0, g0, h0, i0, a) -> Ordering Source #