semirings-0.2.0.0: two monoids as one, in holy haskimony

Safe HaskellNone
LanguageHaskell98

Data.Semiring.Free

Documentation

newtype Free a Source #

Constructors

Free 

Fields

Instances
Eq a => Eq (Free a) Source # 
Instance details

Defined in Data.Semiring.Free

Methods

(==) :: Free a -> Free a -> Bool #

(/=) :: Free a -> Free a -> Bool #

Ord a => Ord (Free a) Source # 
Instance details

Defined in Data.Semiring.Free

Methods

compare :: Free a -> Free a -> Ordering #

(<) :: Free a -> Free a -> Bool #

(<=) :: Free a -> Free a -> Bool #

(>) :: Free a -> Free a -> Bool #

(>=) :: Free a -> Free a -> Bool #

max :: Free a -> Free a -> Free a #

min :: Free a -> Free a -> Free a #

(Ord a, Read a) => Read (Free a) Source # 
Instance details

Defined in Data.Semiring.Free

Show a => Show (Free a) Source # 
Instance details

Defined in Data.Semiring.Free

Methods

showsPrec :: Int -> Free a -> ShowS #

show :: Free a -> String #

showList :: [Free a] -> ShowS #

(Ord a, Monoid a) => Semiring (Free a) Source # 
Instance details

Defined in Data.Semiring.Free

Methods

plus :: Free a -> Free a -> Free a Source #

zero :: Free a Source #

times :: Free a -> Free a -> Free a Source #

one :: Free a Source #

runFree :: Semiring s => (a -> s) -> Free a -> s Source #

lowerFree :: Semiring s => Free s -> s Source #

liftFree :: a -> Free a Source #