UNPKG

crocks

Version:

A collection of well known Algebraic Datatypes for your utter enjoyment.

28 lines (21 loc) 591 B
/** @license ISC License (c) copyright 2019 original and current authors */ /** @author RichardForrester */ var isFunction = require('../core/isFunction') var isNil = require('../core/isNil') var ref = require('../core/Maybe'); var Nothing = ref.Nothing; var Just = ref.Just; function init(m) { if(!isNil(m)) { if(isFunction(m.init)) { return m.init() } if(isFunction(m.slice)) { return m.length < 2 ? Nothing() : Just(m.slice(0, -1)) } } throw new TypeError('init: Argument must be an Array, String, or List') } module.exports = init