rings-0.0.2.4: Groups, rings, semirings, and dioids.

Safe HaskellSafe
LanguageHaskell2010

Data.Dioid

Synopsis

Documentation

type Topological a = (Dioid a, Kleene a, Yoneda a) Source #

class (Prd r, Semiring r) => Dioid r where Source #

Right pre-dioids and dioids.

A right-dioid is a semiring with a right-canonical pre-order relation relative to <>: a <~ b iff b ≡ a <> c for some c.

In other words we have that:

a <~ (a <> b) ≡ True

Consequently <~ is both reflexive and transitive:

a <~ a ≡ True
a <~ b && b <~ c ==> a <~ c ≡ True

Finally <~ is an order relation:

(a =~ b) == (a == b)

See Property

Methods

fromNatural :: Natural -> r Source #

A dioid homomorphism from the naturals to r.

Instances
Dioid Bool Source # 
Instance details

Defined in Data.Bool.Instance

Dioid Natural Source # 
Instance details

Defined in Data.Word.Instance

Dioid Word8 Source # 
Instance details

Defined in Data.Word.Instance

Dioid Word16 Source # 
Instance details

Defined in Data.Word.Instance

Dioid Word32 Source # 
Instance details

Defined in Data.Word.Instance

Dioid Word64 Source # 
Instance details

Defined in Data.Word.Instance

(Monoid a, Dioid a) => Dioid (V2 a) Source # 
Instance details

Defined in Data.Semiring.V2

Methods

fromNatural :: Natural -> V2 a Source #

(Monoid a, Dioid a) => Dioid (V3 a) Source # 
Instance details

Defined in Data.Semiring.V3

Methods

fromNatural :: Natural -> V3 a Source #

(Monoid a, Dioid a) => Dioid (V4 a) Source # 
Instance details

Defined in Data.Semiring.V4

Methods

fromNatural :: Natural -> V4 a Source #

(Monoid a, Monoid b, Dioid a, Dioid b) => Dioid (a, b) Source # 
Instance details

Defined in Data.Dioid

Methods

fromNatural :: Natural -> (a, b) Source #

(Monoid a, Monoid b, Monoid c, Dioid a, Dioid b, Dioid c) => Dioid (a, b, c) Source # 
Instance details

Defined in Data.Dioid

Methods

fromNatural :: Natural -> (a, b, c) Source #