20 lines
289 B
Haskell
20 lines
289 B
Haskell
{-# LANGUAGE Safe #-}
|
|
{-# LANGUAGE NoImplicitPrelude #-}
|
|
|
|
module Semiring (
|
|
Semiring(..),
|
|
zero,
|
|
) where
|
|
|
|
import Data.Monoid
|
|
|
|
-- | Alias for 'mempty'
|
|
zero :: Monoid m => m
|
|
zero = mempty
|
|
|
|
class Monoid m => Semiring m where
|
|
{-# MINIMAL one, (<.>) #-}
|
|
|
|
one :: m
|
|
(<.>) :: m -> m -> m
|