Description

This module contains the container algebras

Synopsis

# Documentation

data Box v Source

A `Box` is a generalization of an interval from the real numbers into an arbitrary lattice. Boxes are closed in the sense that the end points of the boxes are also contained within the box.

See wikipedia for more details.

Constructors

 Box Fieldssmallest :: !v largest :: !v

Instances

 Read v => Read (Box v) Source Show v => Show (Box v) Source (Lattice v, Arbitrary v) => Arbitrary (Box v) Source IsMutable (Box v) Source (Lattice v, HasScalar v) => Container (Box v) Source (Lattice v, HasScalar v) => Constructible (Box v) Source (Lattice v, HasScalar v) => Semigroup (Box v) Source (Eq v, HasScalar v) => Eq_ (Box v) Source Source type Elem (Box v) = v Source type Scalar (Box v) = Scalar v Source type Logic (Box v) = Logic v Source type SetElem (Box v) v' = Box v' Source

newtype Jaccard a Source

The Jaccard distance.

See wikipedia for more detail.

Constructors

 Jaccard a

Instances

 Read a0 => Read (Jaccard a) Source Show a0 => Show (Jaccard a) Source Arbitrary a0 => Arbitrary (Jaccard a) Source NFData a0 => NFData (Jaccard a) Source IsMutable a0 => IsMutable (Jaccard a) Source (Foldable a0, Constructible a0, Monoid a0, Normed a0, (~) * (Scalar a0) Int) => Foldable (Jaccard a) Source (Constructible a0, Semigroup a0) => Constructible (Jaccard a) Source (Lattice_ a, Field (Scalar a), Normed a, (~) * (Logic (Scalar a)) (Logic a), Boolean (Logic a), HasScalar a) => Metric (Jaccard a) Source (Normed a0, Ord_ (Scalar a0), (~) * (Scalar (Scalar a0)) (Scalar a0), Ring (Scalar a0)) => Normed (Jaccard a) Source (Ring a0, Rng a0, Rig a0) => Ring (Jaccard a) Source (Rig a0, Monoid a0, Rg a0) => Rig (Jaccard a) Source (Rg a0, Abelian a0, Monoid a0) => Rg (Jaccard a) Source (Abelian a0, Semigroup a0) => Abelian (Jaccard a) Source (Group a0, Cancellative a0, Monoid a0) => Group (Jaccard a) Source (Cancellative a0, Semigroup a0) => Cancellative (Jaccard a) Source (Monoid a0, Semigroup a0) => Monoid (Jaccard a) Source (Semigroup a0, IsMutable a0) => Semigroup (Jaccard a) Source (Boolean a0, Complemented a0, Heyting a0) => Boolean (Jaccard a) Source (Heyting a0, Bounded a0) => Heyting (Jaccard a) Source (Complemented a0, Bounded a0) => Complemented (Jaccard a) Source (Bounded a0, Lattice_ a0, MinBound_ a0) => Bounded (Jaccard a) Source (Ord_ a0, Lattice_ a0) => Ord_ (Jaccard a) Source (Lattice_ a0, POrd_ a0) => Lattice_ (Jaccard a) Source (MinBound_ a0, POrd_ a0) => MinBound_ (Jaccard a) Source (POrd_ a0, Eq_ a0) => POrd_ (Jaccard a) Source Eq_ a0 => Eq_ (Jaccard a) Source data Mutable m (Jaccard a0) = Mutable_Jaccard (Mutable m a) Source type Elem (Jaccard a0) = Elem a0 Source type Elem (Jaccard a0) = Elem a0 Source type Elem (Jaccard a0) = Elem a0 Source type Elem (Jaccard a0) = Elem a0 Source type Elem (Jaccard a0) = Elem a0 Source type Elem (Jaccard a0) = Elem a0 Source type Elem (Jaccard a0) = Elem a0 Source type Elem (Jaccard a0) = Elem a0 Source type Elem (Jaccard a0) = Elem a0 Source type Elem (Jaccard a0) = Elem a0 Source type Elem (Jaccard a0) = Elem a0 Source type Elem (Jaccard a0) = Elem a0 Source type Elem (Jaccard a0) = Elem a0 Source type Elem (Jaccard a0) = Elem a0 Source type Elem (Jaccard a0) = Elem a0 Source type Elem (Jaccard a0) = Elem a0 Source type Elem (Jaccard a0) = Elem a0 Source type Elem (Jaccard a0) = Elem a0 Source type Elem (Jaccard a0) = Elem a0 Source type Elem (Jaccard a0) = Elem a0 Source type Elem (Jaccard a0) = Elem a0 Source type Elem (Jaccard a0) = Elem a0 Source type Elem (Jaccard a0) = Elem a0 Source type Elem (Jaccard a0) = Elem a0 Source type Scalar (Jaccard a0) = Scalar a0 Source type Scalar (Jaccard a0) = Scalar a0 Source type Scalar (Jaccard a0) = Scalar a0 Source type Scalar (Jaccard a0) = Scalar a0 Source type Scalar (Jaccard a0) = Scalar a0 Source type Scalar (Jaccard a0) = Scalar a0 Source type Scalar (Jaccard a0) = Scalar a0 Source type Scalar (Jaccard a0) = Scalar a0 Source type Scalar (Jaccard a0) = Scalar a0 Source type Scalar (Jaccard a0) = Scalar a0 Source type Scalar (Jaccard a0) = Scalar a0 Source type Scalar (Jaccard a0) = Scalar a0 Source type Scalar (Jaccard a0) = Scalar a0 Source type Scalar (Jaccard a0) = Scalar a0 Source type Scalar (Jaccard a0) = Scalar a0 Source type Scalar (Jaccard a0) = Scalar a0 Source type Scalar (Jaccard a0) = Scalar a0 Source type Scalar (Jaccard a0) = Scalar a0 Source type Scalar (Jaccard a0) = Scalar a0 Source type Scalar (Jaccard a0) = Scalar a0 Source type Scalar (Jaccard a0) = Scalar a0 Source type Scalar (Jaccard a0) = Scalar a0 Source type Scalar (Jaccard a0) = Scalar a0 Source type Scalar (Jaccard a0) = Scalar a0 Source type Actor (Jaccard a0) = Actor a0 Source type Actor (Jaccard a0) = Actor a0 Source type Actor (Jaccard a0) = Actor a0 Source type Actor (Jaccard a0) = Actor a0 Source type Actor (Jaccard a0) = Actor a0 Source type Actor (Jaccard a0) = Actor a0 Source type Actor (Jaccard a0) = Actor a0 Source type Actor (Jaccard a0) = Actor a0 Source type Actor (Jaccard a0) = Actor a0 Source type Actor (Jaccard a0) = Actor a0 Source type Actor (Jaccard a0) = Actor a0 Source type Actor (Jaccard a0) = Actor a0 Source type Actor (Jaccard a0) = Actor a0 Source type Actor (Jaccard a0) = Actor a0 Source type Actor (Jaccard a0) = Actor a0 Source type Actor (Jaccard a0) = Actor a0 Source type Actor (Jaccard a0) = Actor a0 Source type Actor (Jaccard a0) = Actor a0 Source type Actor (Jaccard a0) = Actor a0 Source type Actor (Jaccard a0) = Actor a0 Source type Actor (Jaccard a0) = Actor a0 Source type Actor (Jaccard a0) = Actor a0 Source type Actor (Jaccard a0) = Actor a0 Source type Actor (Jaccard a0) = Actor a0 Source type Logic (Jaccard a0) = Logic a0 Source type Logic (Jaccard a0) = Logic a0 Source type Logic (Jaccard a0) = Logic a0 Source type Logic (Jaccard a0) = Logic a0 Source type Logic (Jaccard a0) = Logic a0 Source type Logic (Jaccard a0) = Logic a0 Source type Logic (Jaccard a0) = Logic a0 Source type Logic (Jaccard a0) = Logic a0 Source type Logic (Jaccard a0) = Logic a0 Source type Logic (Jaccard a0) = Logic a0 Source type Logic (Jaccard a0) = Logic a0 Source type Logic (Jaccard a0) = Logic a0 Source type Logic (Jaccard a0) = Logic a0 Source type Logic (Jaccard a0) = Logic a0 Source type Logic (Jaccard a0) = Logic a0 Source type Logic (Jaccard a0) = Logic a0 Source type Logic (Jaccard a0) = Logic a0 Source type Logic (Jaccard a0) = Logic a0 Source type Logic (Jaccard a0) = Logic a0 Source type Logic (Jaccard a0) = Logic a0 Source type Logic (Jaccard a0) = Logic a0 Source type Logic (Jaccard a0) = Logic a0 Source type Logic (Jaccard a0) = Logic a0 Source type Logic (Jaccard a0) = Logic a0 Source

newtype Hamming a Source

The Hamming distance.

See wikipedia for more detail.

Constructors

 Hamming a

Instances

 Read a0 => Read (Hamming a) Source Show a0 => Show (Hamming a) Source Arbitrary a0 => Arbitrary (Hamming a) Source NFData a0 => NFData (Hamming a) Source IsMutable a0 => IsMutable (Hamming a) Source (Foldable a0, Constructible a0, Monoid a0, Normed a0, (~) * (Scalar a0) Int) => Foldable (Hamming a) Source (Constructible a0, Semigroup a0) => Constructible (Hamming a) Source (Foldable a, Eq (Elem a), Eq a, ClassicalLogic (Scalar a), HasScalar a) => Metric (Hamming a) Source (Normed a0, Ord_ (Scalar a0), (~) * (Scalar (Scalar a0)) (Scalar a0), Ring (Scalar a0)) => Normed (Hamming a) Source (Ring a0, Rng a0, Rig a0) => Ring (Hamming a) Source (Rig a0, Monoid a0, Rg a0) => Rig (Hamming a) Source (Rg a0, Abelian a0, Monoid a0) => Rg (Hamming a) Source (Abelian a0, Semigroup a0) => Abelian (Hamming a) Source (Group a0, Cancellative a0, Monoid a0) => Group (Hamming a) Source (Cancellative a0, Semigroup a0) => Cancellative (Hamming a) Source (Monoid a0, Semigroup a0) => Monoid (Hamming a) Source (Semigroup a0, IsMutable a0) => Semigroup (Hamming a) Source (Boolean a0, Complemented a0, Heyting a0) => Boolean (Hamming a) Source (Heyting a0, Bounded a0) => Heyting (Hamming a) Source (Complemented a0, Bounded a0) => Complemented (Hamming a) Source (Bounded a0, Lattice_ a0, MinBound_ a0) => Bounded (Hamming a) Source (Ord_ a0, Lattice_ a0) => Ord_ (Hamming a) Source (Lattice_ a0, POrd_ a0) => Lattice_ (Hamming a) Source (MinBound_ a0, POrd_ a0) => MinBound_ (Hamming a) Source (POrd_ a0, Eq_ a0) => POrd_ (Hamming a) Source Eq_ a0 => Eq_ (Hamming a) Source data Mutable m (Hamming a0) = Mutable_Hamming (Mutable m a) Source type Elem (Hamming a0) = Elem a0 Source type Elem (Hamming a0) = Elem a0 Source type Elem (Hamming a0) = Elem a0 Source type Elem (Hamming a0) = Elem a0 Source type Elem (Hamming a0) = Elem a0 Source type Elem (Hamming a0) = Elem a0 Source type Elem (Hamming a0) = Elem a0 Source type Elem (Hamming a0) = Elem a0 Source type Elem (Hamming a0) = Elem a0 Source type Elem (Hamming a0) = Elem a0 Source type Elem (Hamming a0) = Elem a0 Source type Elem (Hamming a0) = Elem a0 Source type Elem (Hamming a0) = Elem a0 Source type Elem (Hamming a0) = Elem a0 Source type Elem (Hamming a0) = Elem a0 Source type Elem (Hamming a0) = Elem a0 Source type Elem (Hamming a0) = Elem a0 Source type Elem (Hamming a0) = Elem a0 Source type Elem (Hamming a0) = Elem a0 Source type Elem (Hamming a0) = Elem a0 Source type Elem (Hamming a0) = Elem a0 Source type Elem (Hamming a0) = Elem a0 Source type Elem (Hamming a0) = Elem a0 Source type Elem (Hamming a0) = Elem a0 Source type Scalar (Hamming a0) = Scalar a0 Source type Scalar (Hamming a0) = Scalar a0 Source type Scalar (Hamming a0) = Scalar a0 Source type Scalar (Hamming a0) = Scalar a0 Source type Scalar (Hamming a0) = Scalar a0 Source type Scalar (Hamming a0) = Scalar a0 Source type Scalar (Hamming a0) = Scalar a0 Source type Scalar (Hamming a0) = Scalar a0 Source type Scalar (Hamming a0) = Scalar a0 Source type Scalar (Hamming a0) = Scalar a0 Source type Scalar (Hamming a0) = Scalar a0 Source type Scalar (Hamming a0) = Scalar a0 Source type Scalar (Hamming a0) = Scalar a0 Source type Scalar (Hamming a0) = Scalar a0 Source type Scalar (Hamming a0) = Scalar a0 Source type Scalar (Hamming a0) = Scalar a0 Source type Scalar (Hamming a0) = Scalar a0 Source type Scalar (Hamming a0) = Scalar a0 Source type Scalar (Hamming a0) = Scalar a0 Source type Scalar (Hamming a0) = Scalar a0 Source type Scalar (Hamming a0) = Scalar a0 Source type Scalar (Hamming a0) = Scalar a0 Source type Scalar (Hamming a0) = Scalar a0 Source type Scalar (Hamming a0) = Scalar a0 Source type Actor (Hamming a0) = Actor a0 Source type Actor (Hamming a0) = Actor a0 Source type Actor (Hamming a0) = Actor a0 Source type Actor (Hamming a0) = Actor a0 Source type Actor (Hamming a0) = Actor a0 Source type Actor (Hamming a0) = Actor a0 Source type Actor (Hamming a0) = Actor a0 Source type Actor (Hamming a0) = Actor a0 Source type Actor (Hamming a0) = Actor a0 Source type Actor (Hamming a0) = Actor a0 Source type Actor (Hamming a0) = Actor a0 Source type Actor (Hamming a0) = Actor a0 Source type Actor (Hamming a0) = Actor a0 Source type Actor (Hamming a0) = Actor a0 Source type Actor (Hamming a0) = Actor a0 Source type Actor (Hamming a0) = Actor a0 Source type Actor (Hamming a0) = Actor a0 Source type Actor (Hamming a0) = Actor a0 Source type Actor (Hamming a0) = Actor a0 Source type Actor (Hamming a0) = Actor a0 Source type Actor (Hamming a0) = Actor a0 Source type Actor (Hamming a0) = Actor a0 Source type Actor (Hamming a0) = Actor a0 Source type Actor (Hamming a0) = Actor a0 Source type Logic (Hamming a0) = Logic a0 Source type Logic (Hamming a0) = Logic a0 Source type Logic (Hamming a0) = Logic a0 Source type Logic (Hamming a0) = Logic a0 Source type Logic (Hamming a0) = Logic a0 Source type Logic (Hamming a0) = Logic a0 Source type Logic (Hamming a0) = Logic a0 Source type Logic (Hamming a0) = Logic a0 Source type Logic (Hamming a0) = Logic a0 Source type Logic (Hamming a0) = Logic a0 Source type Logic (Hamming a0) = Logic a0 Source type Logic (Hamming a0) = Logic a0 Source type Logic (Hamming a0) = Logic a0 Source type Logic (Hamming a0) = Logic a0 Source type Logic (Hamming a0) = Logic a0 Source type Logic (Hamming a0) = Logic a0 Source type Logic (Hamming a0) = Logic a0 Source type Logic (Hamming a0) = Logic a0 Source type Logic (Hamming a0) = Logic a0 Source type Logic (Hamming a0) = Logic a0 Source type Logic (Hamming a0) = Logic a0 Source type Logic (Hamming a0) = Logic a0 Source type Logic (Hamming a0) = Logic a0 Source type Logic (Hamming a0) = Logic a0 Source

newtype Levenshtein a Source

The Levenshtein distance is a type of edit distance, but it is often referred to as THE edit distance.

FIXME: The implementation could be made faster in a number of ways; for example, the Hamming distance is a lower bound on the Levenshtein distance

See wikipedia for more detail.

Constructors

 Levenshtein a

Instances

 Read a0 => Read (Levenshtein a) Source Show a0 => Show (Levenshtein a) Source Arbitrary a0 => Arbitrary (Levenshtein a) Source NFData a0 => NFData (Levenshtein a) Source IsMutable a0 => IsMutable (Levenshtein a) Source (Foldable a0, Constructible a0, Monoid a0, Normed a0, (~) * (Scalar a0) Int) => Foldable (Levenshtein a) Source (Constructible a0, Semigroup a0) => Constructible (Levenshtein a) Source (Foldable a, Eq (Elem a), Eq a, Show a, HasScalar a, ClassicalLogic (Scalar a), Bounded (Scalar a)) => Metric (Levenshtein a) Source (Normed a0, Ord_ (Scalar a0), (~) * (Scalar (Scalar a0)) (Scalar a0), Ring (Scalar a0)) => Normed (Levenshtein a) Source (Ring a0, Rng a0, Rig a0) => Ring (Levenshtein a) Source (Rig a0, Monoid a0, Rg a0) => Rig (Levenshtein a) Source (Rg a0, Abelian a0, Monoid a0) => Rg (Levenshtein a) Source (Abelian a0, Semigroup a0) => Abelian (Levenshtein a) Source (Group a0, Cancellative a0, Monoid a0) => Group (Levenshtein a) Source (Cancellative a0, Semigroup a0) => Cancellative (Levenshtein a) Source (Monoid a0, Semigroup a0) => Monoid (Levenshtein a) Source (Semigroup a0, IsMutable a0) => Semigroup (Levenshtein a) Source (Boolean a0, Complemented a0, Heyting a0) => Boolean (Levenshtein a) Source (Heyting a0, Bounded a0) => Heyting (Levenshtein a) Source (Complemented a0, Bounded a0) => Complemented (Levenshtein a) Source (Bounded a0, Lattice_ a0, MinBound_ a0) => Bounded (Levenshtein a) Source (Ord_ a0, Lattice_ a0) => Ord_ (Levenshtein a) Source (Lattice_ a0, POrd_ a0) => Lattice_ (Levenshtein a) Source (MinBound_ a0, POrd_ a0) => MinBound_ (Levenshtein a) Source (POrd_ a0, Eq_ a0) => POrd_ (Levenshtein a) Source Eq_ a0 => Eq_ (Levenshtein a) Source data Mutable m (Levenshtein a0) = Mutable_Levenshtein (Mutable m a) Source type Elem (Levenshtein a0) = Elem a0 Source type Elem (Levenshtein a0) = Elem a0 Source type Elem (Levenshtein a0) = Elem a0 Source type Elem (Levenshtein a0) = Elem a0 Source type Elem (Levenshtein a0) = Elem a0 Source type Elem (Levenshtein a0) = Elem a0 Source type Elem (Levenshtein a0) = Elem a0 Source type Elem (Levenshtein a0) = Elem a0 Source type Elem (Levenshtein a0) = Elem a0 Source type Elem (Levenshtein a0) = Elem a0 Source type Elem (Levenshtein a0) = Elem a0 Source type Elem (Levenshtein a0) = Elem a0 Source type Elem (Levenshtein a0) = Elem a0 Source type Elem (Levenshtein a0) = Elem a0 Source type Elem (Levenshtein a0) = Elem a0 Source type Elem (Levenshtein a0) = Elem a0 Source type Elem (Levenshtein a0) = Elem a0 Source type Elem (Levenshtein a0) = Elem a0 Source type Elem (Levenshtein a0) = Elem a0 Source type Elem (Levenshtein a0) = Elem a0 Source type Elem (Levenshtein a0) = Elem a0 Source type Elem (Levenshtein a0) = Elem a0 Source type Elem (Levenshtein a0) = Elem a0 Source type Elem (Levenshtein a0) = Elem a0 Source type Scalar (Levenshtein a0) = Scalar a0 Source type Scalar (Levenshtein a0) = Scalar a0 Source type Scalar (Levenshtein a0) = Scalar a0 Source type Scalar (Levenshtein a0) = Scalar a0 Source type Scalar (Levenshtein a0) = Scalar a0 Source type Scalar (Levenshtein a0) = Scalar a0 Source type Scalar (Levenshtein a0) = Scalar a0 Source type Scalar (Levenshtein a0) = Scalar a0 Source type Scalar (Levenshtein a0) = Scalar a0 Source type Scalar (Levenshtein a0) = Scalar a0 Source type Scalar (Levenshtein a0) = Scalar a0 Source type Scalar (Levenshtein a0) = Scalar a0 Source type Scalar (Levenshtein a0) = Scalar a0 Source type Scalar (Levenshtein a0) = Scalar a0 Source type Scalar (Levenshtein a0) = Scalar a0 Source type Scalar (Levenshtein a0) = Scalar a0 Source type Scalar (Levenshtein a0) = Scalar a0 Source type Scalar (Levenshtein a0) = Scalar a0 Source type Scalar (Levenshtein a0) = Scalar a0 Source type Scalar (Levenshtein a0) = Scalar a0 Source type Scalar (Levenshtein a0) = Scalar a0 Source type Scalar (Levenshtein a0) = Scalar a0 Source type Scalar (Levenshtein a0) = Scalar a0 Source type Scalar (Levenshtein a0) = Scalar a0 Source type Actor (Levenshtein a0) = Actor a0 Source type Actor (Levenshtein a0) = Actor a0 Source type Actor (Levenshtein a0) = Actor a0 Source type Actor (Levenshtein a0) = Actor a0 Source type Actor (Levenshtein a0) = Actor a0 Source type Actor (Levenshtein a0) = Actor a0 Source type Actor (Levenshtein a0) = Actor a0 Source type Actor (Levenshtein a0) = Actor a0 Source type Actor (Levenshtein a0) = Actor a0 Source type Actor (Levenshtein a0) = Actor a0 Source type Actor (Levenshtein a0) = Actor a0 Source type Actor (Levenshtein a0) = Actor a0 Source type Actor (Levenshtein a0) = Actor a0 Source type Actor (Levenshtein a0) = Actor a0 Source type Actor (Levenshtein a0) = Actor a0 Source type Actor (Levenshtein a0) = Actor a0 Source type Actor (Levenshtein a0) = Actor a0 Source type Actor (Levenshtein a0) = Actor a0 Source type Actor (Levenshtein a0) = Actor a0 Source type Actor (Levenshtein a0) = Actor a0 Source type Actor (Levenshtein a0) = Actor a0 Source type Actor (Levenshtein a0) = Actor a0 Source type Actor (Levenshtein a0) = Actor a0 Source type Actor (Levenshtein a0) = Actor a0 Source type Logic (Levenshtein a0) = Logic a0 Source type Logic (Levenshtein a0) = Logic a0 Source type Logic (Levenshtein a0) = Logic a0 Source type Logic (Levenshtein a0) = Logic a0 Source type Logic (Levenshtein a0) = Logic a0 Source type Logic (Levenshtein a0) = Logic a0 Source type Logic (Levenshtein a0) = Logic a0 Source type Logic (Levenshtein a0) = Logic a0 Source type Logic (Levenshtein a0) = Logic a0 Source type Logic (Levenshtein a0) = Logic a0 Source type Logic (Levenshtein a0) = Logic a0 Source type Logic (Levenshtein a0) = Logic a0 Source type Logic (Levenshtein a0) = Logic a0 Source type Logic (Levenshtein a0) = Logic a0 Source type Logic (Levenshtein a0) = Logic a0 Source type Logic (Levenshtein a0) = Logic a0 Source type Logic (Levenshtein a0) = Logic a0 Source type Logic (Levenshtein a0) = Logic a0 Source type Logic (Levenshtein a0) = Logic a0 Source type Logic (Levenshtein a0) = Logic a0 Source type Logic (Levenshtein a0) = Logic a0 Source type Logic (Levenshtein a0) = Logic a0 Source type Logic (Levenshtein a0) = Logic a0 Source type Logic (Levenshtein a0) = Logic a0 Source

dist :: Eq a => [a] -> [a] -> Int Source

newtype Uncompensated s Source

Compensated sums are more accurate for floating point math

FIXME: There are many different types of compensated sums, they should be implemented too.

FIXME: Is this the best representation for compensated sums? The advantage is that we can make any algorithm work in a compensated or uncompensated manner by just changing the types. This is closely related to the measure theory containers work.

See, e.g. kahan summation for more detail.

Constructors

 Uncompensated s

Instances

 Read s0 => Read (Uncompensated s) Source Show s0 => Show (Uncompensated s) Source Arbitrary s0 => Arbitrary (Uncompensated s) Source NFData s0 => NFData (Uncompensated s) Source IsMutable s0 => IsMutable (Uncompensated s) Source Source (Constructible s0, Semigroup s0) => Constructible (Uncompensated s) Source (Normed s0, Ord_ (Scalar s0), (~) * (Scalar (Scalar s0)) (Scalar s0), Ring (Scalar s0)) => Normed (Uncompensated s) Source (Monoid s0, Semigroup s0) => Monoid (Uncompensated s) Source (Semigroup s0, IsMutable s0) => Semigroup (Uncompensated s) Source (Boolean s0, Complemented s0, Heyting s0) => Boolean (Uncompensated s) Source (Heyting s0, Bounded s0) => Heyting (Uncompensated s) Source (Complemented s0, Bounded s0) => Complemented (Uncompensated s) Source (Bounded s0, Lattice_ s0, MinBound_ s0) => Bounded (Uncompensated s) Source (Ord_ s0, Lattice_ s0) => Ord_ (Uncompensated s) Source (Lattice_ s0, POrd_ s0) => Lattice_ (Uncompensated s) Source (MinBound_ s0, POrd_ s0) => MinBound_ (Uncompensated s) Source (POrd_ s0, Eq_ s0) => POrd_ (Uncompensated s) Source Eq_ s0 => Eq_ (Uncompensated s) Source data Mutable m (Uncompensated s0) = Mutable_Uncompensated (Mutable m s) Source type Elem (Uncompensated s0) = Elem s0 Source type Elem (Uncompensated s0) = Elem s0 Source type Elem (Uncompensated s0) = Elem s0 Source type Elem (Uncompensated s0) = Elem s0 Source type Elem (Uncompensated s0) = Elem s0 Source type Elem (Uncompensated s0) = Elem s0 Source type Elem (Uncompensated s0) = Elem s0 Source type Elem (Uncompensated s0) = Elem s0 Source type Elem (Uncompensated s0) = Elem s0 Source type Elem (Uncompensated s0) = Elem s0 Source type Elem (Uncompensated s0) = Elem s0 Source type Elem (Uncompensated s0) = Elem s0 Source type Elem (Uncompensated s0) = Elem s0 Source type Elem (Uncompensated s0) = Elem s0 Source type Elem (Uncompensated s0) = Elem s0 Source type Elem (Uncompensated s0) = Elem s0 Source type Elem (Uncompensated s0) = Elem s0 Source type Scalar (Uncompensated s0) = Scalar s0 Source type Scalar (Uncompensated s0) = Scalar s0 Source type Scalar (Uncompensated s0) = Scalar s0 Source type Scalar (Uncompensated s0) = Scalar s0 Source type Scalar (Uncompensated s0) = Scalar s0 Source type Scalar (Uncompensated s0) = Scalar s0 Source type Scalar (Uncompensated s0) = Scalar s0 Source type Scalar (Uncompensated s0) = Scalar s0 Source type Scalar (Uncompensated s0) = Scalar s0 Source type Scalar (Uncompensated s0) = Scalar s0 Source type Scalar (Uncompensated s0) = Scalar s0 Source type Scalar (Uncompensated s0) = Scalar s0 Source type Scalar (Uncompensated s0) = Scalar s0 Source type Scalar (Uncompensated s0) = Scalar s0 Source type Scalar (Uncompensated s0) = Scalar s0 Source type Scalar (Uncompensated s0) = Scalar s0 Source type Scalar (Uncompensated s0) = Scalar s0 Source type Actor (Uncompensated s0) = Actor s0 Source type Actor (Uncompensated s0) = Actor s0 Source type Actor (Uncompensated s0) = Actor s0 Source type Actor (Uncompensated s0) = Actor s0 Source type Actor (Uncompensated s0) = Actor s0 Source type Actor (Uncompensated s0) = Actor s0 Source type Actor (Uncompensated s0) = Actor s0 Source type Actor (Uncompensated s0) = Actor s0 Source type Actor (Uncompensated s0) = Actor s0 Source type Actor (Uncompensated s0) = Actor s0 Source type Actor (Uncompensated s0) = Actor s0 Source type Actor (Uncompensated s0) = Actor s0 Source type Actor (Uncompensated s0) = Actor s0 Source type Actor (Uncompensated s0) = Actor s0 Source type Actor (Uncompensated s0) = Actor s0 Source type Actor (Uncompensated s0) = Actor s0 Source type Actor (Uncompensated s0) = Actor s0 Source type Logic (Uncompensated s0) = Logic s0 Source type Logic (Uncompensated s0) = Logic s0 Source type Logic (Uncompensated s0) = Logic s0 Source type Logic (Uncompensated s0) = Logic s0 Source type Logic (Uncompensated s0) = Logic s0 Source type Logic (Uncompensated s0) = Logic s0 Source type Logic (Uncompensated s0) = Logic s0 Source type Logic (Uncompensated s0) = Logic s0 Source type Logic (Uncompensated s0) = Logic s0 Source type Logic (Uncompensated s0) = Logic s0 Source type Logic (Uncompensated s0) = Logic s0 Source type Logic (Uncompensated s0) = Logic s0 Source type Logic (Uncompensated s0) = Logic s0 Source type Logic (Uncompensated s0) = Logic s0 Source type Logic (Uncompensated s0) = Logic s0 Source type Logic (Uncompensated s0) = Logic s0 Source type Logic (Uncompensated s0) = Logic s0 Source

newtype Lexical a Source

Lexical ordering of foldable types.

NOTE: The default ordering for containers is the partial ordering by inclusion. In most cases this makes more sense intuitively. But this is NOT the ordering in the Prelude, because the Prelude does not have partial orders. Therefore, in the prelude, @`"abc" < "def"`@, but for us, "abc" and "def" are incomparable PNA. The Lexical newtype gives us the total ordering provided by the Prelude.

FIXME: there are more container orderings that probably deserve implementation

Constructors

 Lexical FieldsunLexical :: a

Instances

 Read a0 => Read (Lexical a) Source Show a0 => Show (Lexical a) Source Arbitrary a0 => Arbitrary (Lexical a) Source NFData a0 => NFData (Lexical a) Source IsMutable a0 => IsMutable (Lexical a) Source (Foldable a0, Constructible a0, Monoid a0, Normed a0, (~) * (Scalar a0) Int) => Foldable (Lexical a) Source (Constructible a0, Semigroup a0) => Constructible (Lexical a) Source (Normed a0, Ord_ (Scalar a0), (~) * (Scalar (Scalar a0)) (Scalar a0), Ring (Scalar a0)) => Normed (Lexical a) Source (Monoid a0, Semigroup a0) => Monoid (Lexical a) Source (Semigroup a0, IsMutable a0) => Semigroup (Lexical a) Source ((~) * (Logic a) Bool, Ord (Elem a), Foldable a, Eq_ a) => Ord_ (Lexical a) Source ((~) * (Logic a) Bool, Ord (Elem a), Foldable a, Eq_ a) => Lattice_ (Lexical a) Source ((~) * (Logic a) Bool, Ord (Elem a), Foldable a, Eq_ a) => MinBound_ (Lexical a) Source ((~) * (Logic a) Bool, Ord (Elem a), Foldable a, Eq_ a) => POrd_ (Lexical a) Source Eq_ a0 => Eq_ (Lexical a) Source data Mutable m (Lexical a0) = Mutable_Lexical (Mutable m a) Source type Elem (Lexical a0) = Elem a0 Source type Elem (Lexical a0) = Elem a0 Source type Elem (Lexical a0) = Elem a0 Source type Elem (Lexical a0) = Elem a0 Source type Elem (Lexical a0) = Elem a0 Source type Elem (Lexical a0) = Elem a0 Source type Elem (Lexical a0) = Elem a0 Source type Elem (Lexical a0) = Elem a0 Source type Elem (Lexical a0) = Elem a0 Source type Elem (Lexical a0) = Elem a0 Source type Scalar (Lexical a0) = Scalar a0 Source type Scalar (Lexical a0) = Scalar a0 Source type Scalar (Lexical a0) = Scalar a0 Source type Scalar (Lexical a0) = Scalar a0 Source type Scalar (Lexical a0) = Scalar a0 Source type Scalar (Lexical a0) = Scalar a0 Source type Scalar (Lexical a0) = Scalar a0 Source type Scalar (Lexical a0) = Scalar a0 Source type Scalar (Lexical a0) = Scalar a0 Source type Scalar (Lexical a0) = Scalar a0 Source type Actor (Lexical a0) = Actor a0 Source type Actor (Lexical a0) = Actor a0 Source type Actor (Lexical a0) = Actor a0 Source type Actor (Lexical a0) = Actor a0 Source type Actor (Lexical a0) = Actor a0 Source type Actor (Lexical a0) = Actor a0 Source type Actor (Lexical a0) = Actor a0 Source type Actor (Lexical a0) = Actor a0 Source type Actor (Lexical a0) = Actor a0 Source type Actor (Lexical a0) = Actor a0 Source type Logic (Lexical a0) = Logic a0 Source type Logic (Lexical a0) = Logic a0 Source type Logic (Lexical a0) = Logic a0 Source type Logic (Lexical a0) = Logic a0 Source type Logic (Lexical a0) = Logic a0 Source type Logic (Lexical a0) = Logic a0 Source type Logic (Lexical a0) = Logic a0 Source type Logic (Lexical a0) = Logic a0 Source type Logic (Lexical a0) = Logic a0 Source type Logic (Lexical a0) = Logic a0 Source

newtype ComponentWise a Source

Constructors

 ComponentWise FieldsunComponentWise :: a

Instances

 Read a0 => Read (ComponentWise a) Source Show a0 => Show (ComponentWise a) Source Arbitrary a0 => Arbitrary (ComponentWise a) Source NFData a0 => NFData (ComponentWise a) Source IsMutable a0 => IsMutable (ComponentWise a) Source (Foldable a0, Constructible a0, Monoid a0, Normed a0, (~) * (Scalar a0) Int) => Foldable (ComponentWise a) Source (Constructible a0, Semigroup a0) => Constructible (ComponentWise a) Source (Normed a0, Ord_ (Scalar a0), (~) * (Scalar (Scalar a0)) (Scalar a0), Ring (Scalar a0)) => Normed (ComponentWise a) Source (Monoid a0, Semigroup a0) => Monoid (ComponentWise a) Source (Semigroup a0, IsMutable a0) => Semigroup (ComponentWise a) Source (SimpleContainerLogic a, Eq_ a, Lattice_ (Elem a), Foldable a) => Lattice_ (ComponentWise a) Source (SimpleContainerLogic a, Eq_ a, POrd_ (Elem a), Foldable a) => MinBound_ (ComponentWise a) Source (SimpleContainerLogic a, Eq_ a, POrd_ (Elem a), Foldable a) => POrd_ (ComponentWise a) Source Eq_ a0 => Eq_ (ComponentWise a) Source data Mutable m (ComponentWise a0) = Mutable_ComponentWise (Mutable m a) Source type Elem (ComponentWise a0) = Elem a0 Source type Elem (ComponentWise a0) = Elem a0 Source type Elem (ComponentWise a0) = Elem a0 Source type Elem (ComponentWise a0) = Elem a0 Source type Elem (ComponentWise a0) = Elem a0 Source type Elem (ComponentWise a0) = Elem a0 Source type Elem (ComponentWise a0) = Elem a0 Source type Elem (ComponentWise a0) = Elem a0 Source type Elem (ComponentWise a0) = Elem a0 Source type Elem (ComponentWise a0) = Elem a0 Source type Scalar (ComponentWise a0) = Scalar a0 Source type Scalar (ComponentWise a0) = Scalar a0 Source type Scalar (ComponentWise a0) = Scalar a0 Source type Scalar (ComponentWise a0) = Scalar a0 Source type Scalar (ComponentWise a0) = Scalar a0 Source type Scalar (ComponentWise a0) = Scalar a0 Source type Scalar (ComponentWise a0) = Scalar a0 Source type Scalar (ComponentWise a0) = Scalar a0 Source type Scalar (ComponentWise a0) = Scalar a0 Source type Scalar (ComponentWise a0) = Scalar a0 Source type Actor (ComponentWise a0) = Actor a0 Source type Actor (ComponentWise a0) = Actor a0 Source type Actor (ComponentWise a0) = Actor a0 Source type Actor (ComponentWise a0) = Actor a0 Source type Actor (ComponentWise a0) = Actor a0 Source type Actor (ComponentWise a0) = Actor a0 Source type Actor (ComponentWise a0) = Actor a0 Source type Actor (ComponentWise a0) = Actor a0 Source type Actor (ComponentWise a0) = Actor a0 Source type Actor (ComponentWise a0) = Actor a0 Source type Logic (ComponentWise a0) = Logic a0 Source type Logic (ComponentWise a0) = Logic a0 Source type Logic (ComponentWise a0) = Logic a0 Source type Logic (ComponentWise a0) = Logic a0 Source type Logic (ComponentWise a0) = Logic a0 Source type Logic (ComponentWise a0) = Logic a0 Source type Logic (ComponentWise a0) = Logic a0 Source type Logic (ComponentWise a0) = Logic a0 Source type Logic (ComponentWise a0) = Logic a0 Source type Logic (ComponentWise a0) = Logic a0 Source

class (Boolean (Logic a), Logic (Elem a) ~ Logic a) => SimpleContainerLogic a Source

Instances

 (Boolean (Logic a), (~) * (Logic (Elem a)) (Logic a)) => SimpleContainerLogic a Source