Module

Data.Semiring.Free

#Free

newtype Free a

The free Semiring for a type a.

Constructors

Instances

#free

free :: forall a. a -> Free a

Lift a value of type a to a value of type Free a

#liftFree

liftFree :: forall a s. Semiring s => (a -> s) -> Free a -> s

Free is left adjoint to the forgetful functor from Semirings to types.

#lowerFree

lowerFree :: forall a s. Semiring s => (Free a -> s) -> a -> s

Free is left adjoint to the forgetful functor from Semirings to types.

Modules