parameterized-0.5.0.0: Parameterized/indexed monoids and monads using only a single parameter type variable.

Parameterized.Data.Semigroup

Synopsis

# Documentation

type family PNullary (n :: k -> Type) (t :: k) = (r :: Type) | r -> n t Source #

class PSemigroup n t u v | t u -> v where Source #

Parameterized version of (<>) in Semigroup If used in conjunction with Empty, ie as a parameterized Monoid, then the instance should follow the following laws: * pmempty' pmappend' x = x * x pmappend' pempty' = x * x pmappend' (y pmappend' z) = (x pmappend' y) pmappend' z

Minimal complete definition

pmappend

Methods

pmappend :: PNullary n t -> PNullary n u -> PNullary n v infixr 6 Source #

(&<>) :: PSemigroup n t u v => PNullary n t -> PNullary n u -> PNullary n v infixr 6 Source #