crocks
Version:
A collection of well known Algebraic Datatypes for your utter enjoyment.
14 lines (10 loc) • 360 B
JavaScript
/** @license ISC License (c) copyright 2016 original and current authors */
/** @author Ian Hofmann-Hicks (evil) */
var hasAlg = require('./hasAlg')
var isSemigroup = require('./isSemigroup')
// isMonoid :: a -> Boolean
function isMonoid(m) {
return isSemigroup(m)
&& (hasAlg('empty', m) || hasAlg('empty', m.constructor))
}
module.exports = isMonoid