Data.Ring.Semi.Tropical
 Contents Tropical Semirings
Synopsis
module Data.Monoid.Reducer
module Data.Ring
infinity :: Tropical a
newtype Tropical a = Tropical {
 getTropical :: Maybe a
}
Documentation
module Data.Monoid.Reducer
module Data.Ring
Tropical Semirings
 infinity :: Tropical a Source
 newtype Tropical a Source

The SemiRing (min,+) over a extended with infinity. When a has a Num instance with an addition that respects order, then this is transformed into a tropical semiring. It is assumed that 0 is the least element of a.

Constructors
Tropical
 getTropical :: Maybe a
Instances
 Functor Tropical Pointed Tropical Ord a => Reducer a (Tropical a) (Ord a, Num a) => Bimodule Natural (Tropical a) (Ord a, Num a) => RightModule Natural (Tropical a) (Ord a, Num a) => LeftModule Natural (Tropical a) (Ord a, Num a) => Module Natural (Tropical a) Eq a => Eq (Tropical a) Ord a => Ord (Tropical a) Read a => Read (Tropical a) Show a => Show (Tropical a) Arbitrary a => Arbitrary (Tropical a) CoArbitrary a => CoArbitrary (Tropical a) Ord a => Monoid (Tropical a) Num a => Multiplicative (Tropical a) (Ord a, Num a) => SemiRing (Tropical a) (Ord a, Num a) => RightSemiNearRing (Tropical a) (Ord a, Num a) => LeftSemiNearRing (Tropical a) (Ord a, Num a) => Ringoid (Tropical a) Ord a => Reducer (Maybe a) (Tropical a) Ord a => Reducer (MinPriority a) (Tropical a) (Ord a, Num a) => Bimodule (Tropical a) (Tropical a) (Ord a, Num a) => RightModule (Tropical a) (Tropical a) (Ord a, Num a) => LeftModule (Tropical a) (Tropical a) (Ord a, Num a) => Module (Tropical a) (Tropical a)