crocks
Version:
A collection of well known Algebraic Datatypes for your utter enjoyment.
14 lines (8 loc) • 494 B
JavaScript
/** @license ISC License (c) copyright 2017 original and current authors */
/** @author Ian Hofmann-Hicks (evil) */
var isFunction = require('./isFunction')
var fl = require('./flNames')
var check = function (alg, m) { return isFunction(m[fl[alg]]) || isFunction(m[alg]); }
var checkImpl = function (alg, m) { return isFunction(m['@@implements']) && !!m['@@implements'](alg); }
var hasAlg = function (alg, m) { return !!m && (check(alg, m) || checkImpl(alg, m)); }
module.exports = hasAlg