ord is:module
Basic operations on type-level Orderings.
Ord properties
You will need TypeApplications to use these.
Equality and ordering.
Note that equality doesn't really require a class, it can be defined
uniformly as
TyEq.
Ord properties
You will need TypeApplications to use these.
This
optional module is part of LeanCheck, a simple enumerative
property-based testing library.
Toy
Eq and
Ord instance for functions.
instance (Listable a, Eq b) => Eq (a -> b) where
(==) = areEqualFor 12
instance (Listable a, Ord b) => Ord (a -> b) where
compare = compareFor 12
This compares functions by testing them for up to 12 different values
of each argument.
Single argument functions are tested 12 times. Two argument functions
are tested 144 times. Three argument functions are tested 1728 times.
At each subsequent argument, number of tests and runtime increases
12-fold.
To customize the number of tests, don't import this and use the above
code changing the
12 value. Keep in mind that this value is
number of tests for
each argument.
Warning: this is only intended to be used in testing modules.
Avoid importing this on modules that are used as libraries as there is
no way to unimport a typeclass instance.
Basic operations on type-level Orderings.
Comparison operators applied point-wise on streams.
- This module is deprecated and will be removed*
This module no-longer does anything since
URI now has an
Ord instance by default (prior to
network 2.4.0.0@
this was not the case).
This module used to provide an ordering for earlier versions of the
network package, but with the split of
URI out to the
network-uri in version
2.6.0.0, the CPP needed to
keep this going got annoying enough for me to just require a recent
network package.
ISO 8601 Ordinal Date format
Provide trees (of instructions), so that lists of instructions can be
appended in linear time.
This module is the twin brother of module Text.Cassius. The difference
is that these parsers preserv the given order of attributes and mixin
blocks.
let bams = [cassiusMixin|
bam1:bam2
^{bins}
bam3:bam4
|] :: Mixin
bins = [cassiusMixin|
bin1:bin2
|] :: Mixin
in renderCss ([Text.Ordered.lucius|foo{bar1:bar2;^{bams};bar3:bar4;}|] undefined)
"foo{bar1:bar2;bam1:bam2;bin1:bin2;bam3:bam4;bar3:bar4}"
This module is the twin brother of module Text.Lucius. The difference
is that these parsers preserv the given order of attributes and mixin
blocks.
let bams = [Text.Ordered.cassiusMixin|
bam1:bam2
^{bins}
bam3:bam4
|] :: Mixin
bins = [Text.Ordered.cassiusMixin|
bin1:bin2
|] :: Mixin
in renderCss ([lucius|foo{bar1:bar2;^{bams};bar3:bar4;}|] undefined)
"foo{bar1:bar2;bam1:bam2;bin1:bin2;bam3:bam4;bar3:bar4}"
An
OrdPSQ uses the
Ord instance of the key type to build
a priority search queue.
It is based on Ralf Hinze's work.
- Hinze, R., A Simple Implementation Technique for Priority Search
Queues, ICFP 2001, pp. 110-121
http://citeseer.ist.psu.edu/hinze01simple.html
This means it is similar to the
PSQueue package but our
benchmarks showed it perform quite a bit faster.