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

Safe HaskellNone
LanguageHaskell98

Data.Star

Synopsis

Documentation

class Semiring a => Star a where Source #

A Star semiring adds one operation, star to a Semiring, such that it follows the law:

star x = one + x * star x = one + star x * x

Another operation, aplus, can be defined in terms of star:

aplus x = x * star x

Minimal complete definition

star | aplus

Methods

star :: a -> a Source #

aplus :: a -> a Source #

Instances
Star Bool Source # 
Instance details

Defined in Data.Star

Methods

star :: Bool -> Bool Source #

aplus :: Bool -> Bool Source #

Star () Source # 
Instance details

Defined in Data.Star

Methods

star :: () -> () Source #

aplus :: () -> () Source #

Star b => Star (a -> b) Source # 
Instance details

Defined in Data.Star

Methods

star :: (a -> b) -> a -> b Source #

aplus :: (a -> b) -> a -> b Source #

Star (Proxy a) Source # 
Instance details

Defined in Data.Star

Methods

star :: Proxy a -> Proxy a Source #

aplus :: Proxy a -> Proxy a Source #