{"_id":"sanctuary-type-classes","_rev":"4181713","name":"sanctuary-type-classes","description":"Standard library for Fantasy Land","dist-tags":{"latest":"13.0.0"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"time":{"modified":"2026-03-01T21:52:48.000Z","created":"2016-10-17T07:23:33.208Z","13.0.0":"2022-01-19T10:22:18.262Z","12.1.0":"2020-01-18T15:15:48.084Z","12.0.0":"2019-11-03T17:03:34.312Z","11.0.0":"2019-04-05T13:53:35.272Z","10.0.0":"2019-02-19T22:33:54.346Z","9.0.0":"2018-05-10T12:43:22.459Z","8.2.1":"2018-05-10T12:01:22.046Z","8.2.0":"2018-04-29T19:55:51.569Z","8.1.1":"2018-02-28T22:37:15.276Z","8.1.0":"2018-02-10T22:54:59.168Z","8.0.1":"2018-02-04T15:29:37.697Z","8.0.0":"2018-01-09T16:45:26.659Z","7.2.0":"2018-01-04T17:18:42.878Z","7.1.1":"2017-11-30T13:40:33.676Z","7.1.0":"2017-10-20T12:19:19.014Z","7.0.0":"2017-09-29T12:59:38.372Z","6.1.0":"2017-09-29T11:20:18.487Z","6.0.0":"2017-05-28T11:15:23.761Z","5.2.0":"2017-05-23T05:55:11.522Z","5.1.0":"2017-05-11T01:45:10.141Z","5.0.0":"2017-04-30T19:43:24.371Z","4.0.0":"2017-03-29T13:50:01.291Z","3.1.0":"2017-03-29T12:59:50.622Z","3.0.1":"2017-01-31T17:11:35.145Z","3.0.0":"2017-01-20T08:55:38.880Z","2.0.1":"2016-12-27T20:44:59.649Z","1.3.1":"2016-12-27T20:22:30.981Z","2.0.0":"2016-12-25T02:52:07.135Z","1.3.0":"2016-12-18T23:56:55.404Z","1.2.0":"2016-11-18T16:18:11.375Z","1.1.0":"2016-11-11T14:45:10.563Z","1.0.0":"2016-11-04T10:20:11.695Z","0.3.1":"2016-10-29T11:55:36.913Z","0.3.0":"2016-10-23T20:23:50.622Z","0.2.0":"2016-10-22T23:56:40.365Z","0.1.0":"2016-10-17T07:23:33.208Z"},"users":{},"repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"versions":{"13.0.0":{"name":"sanctuary-type-classes","version":"13.0.0","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"bench":"sanctuary-benchmark","doctest":"sanctuary-doctest","lint":"sanctuary-lint","release":"sanctuary-release","test":"npm run lint && sanctuary-test && npm run doctest"},"dependencies":{"sanctuary-type-identifiers":"3.0.0"},"devDependencies":{"fantasy-land":"5.0.0","fantasy-laws":"1.2.x","jsverify":"0.8.x","list":"2.0.11","sanctuary-benchmark":"1.0.x","sanctuary-identity":"2.1.x","sanctuary-maybe":"2.1.x","sanctuary-pair":"2.1.x","sanctuary-scripts":"5.0.x","sanctuary-show":"2.0.x","sanctuary-useless":"2.0.1"},"mocha":{"timeout":30000,"ui":"tdd"},"gitHead":"8036187127fe1a7a0bf0ba9e1eddf3a878403ecb","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@13.0.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"shasum":"f453f7b2dc2e4983a2a421901ae7bc8eb04d7674","size":22472,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-13.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-13.0.0.tgz"},"_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"directories":{},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sanctuary-type-classes_13.0.0_1642587738104_0.9289050098799043"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-01-19T10:25:01.983Z","publish_time":1642587738262,"_cnpm_publish_time":1642587738262},"12.1.0":{"name":"sanctuary-type-classes","version":"12.1.0","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"bench":"sanctuary-benchmark","doctest":"sanctuary-doctest","lint":"sanctuary-lint","release":"sanctuary-release","test":"npm run lint && sanctuary-test && npm run doctest"},"dependencies":{"sanctuary-type-identifiers":"3.0.0"},"devDependencies":{"fantasy-land":"4.0.1","fantasy-laws":"1.2.x","jsverify":"0.8.x","list":"2.0.11","sanctuary-benchmark":"1.0.x","sanctuary-identity":"2.0.x","sanctuary-maybe":"2.0.x","sanctuary-pair":"2.0.x","sanctuary-scripts":"4.0.x","sanctuary-show":"2.0.x"},"gitHead":"dd56c578d07d41a112cd106034eaeaa9c5c422ce","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@12.1.0","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"shasum":"2d1457f678cb621bcda64fe537f5d07da5556c3a","size":22487,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-12.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-12.1.0.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sanctuary-type-classes_12.1.0_1579360547917_0.07975772095439826"},"_hasShrinkwrap":false,"publish_time":1579360548084,"_cnpm_publish_time":1579360548084,"_cnpmcore_publish_time":"2021-12-16T18:30:51.938Z"},"12.0.0":{"name":"sanctuary-type-classes","version":"12.0.0","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"bench":"sanctuary-benchmark","doctest":"sanctuary-doctest","lint":"sanctuary-lint","release":"sanctuary-release","test":"npm run lint && sanctuary-test && npm run doctest"},"dependencies":{"sanctuary-type-identifiers":"3.0.0"},"devDependencies":{"fantasy-land":"4.0.1","fantasy-laws":"1.2.x","jsverify":"0.8.x","list":"2.0.11","sanctuary-benchmark":"1.0.x","sanctuary-identity":"1.2.x","sanctuary-maybe":"1.2.x","sanctuary-pair":"1.2.x","sanctuary-scripts":"3.2.x","sanctuary-show":"1.0.x"},"gitHead":"1144a4a460d8b485b90bbdf1e98a9c6274274496","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@12.0.0","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"shasum":"71ad244785d4430ab81243823792e9fe45919289","size":22088,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-12.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-12.0.0.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sanctuary-type-classes_12.0.0_1572800614120_0.9083865294155808"},"_hasShrinkwrap":false,"publish_time":1572800614312,"_cnpm_publish_time":1572800614312,"_cnpmcore_publish_time":"2021-12-16T18:30:52.145Z"},"11.0.0":{"name":"sanctuary-type-classes","version":"11.0.0","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"bench":"sanctuary-benchmark","doctest":"sanctuary-doctest","lint":"sanctuary-lint","release":"sanctuary-release","test":"npm run lint && sanctuary-test && npm run doctest"},"dependencies":{"sanctuary-type-identifiers":"2.0.1"},"devDependencies":{"fantasy-land":"4.0.1","fantasy-laws":"1.2.x","jsverify":"0.8.x","list":"2.0.11","sanctuary-benchmark":"1.0.x","sanctuary-identity":"1.1.x","sanctuary-maybe":"1.1.x","sanctuary-pair":"1.1.x","sanctuary-scripts":"3.2.x","sanctuary-show":"1.0.x"},"gitHead":"fb532bfd7dd2b67a315735bd72485978503e801e","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@11.0.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"f7f752a846aad057d894183a20169bc593ddb039","size":22093,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-11.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-11.0.0.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sanctuary-type-classes_11.0.0_1554472415142_0.2669622549182884"},"_hasShrinkwrap":false,"publish_time":1554472415272,"_cnpm_publish_time":1554472415272,"_cnpmcore_publish_time":"2021-12-16T18:30:52.388Z"},"10.0.0":{"name":"sanctuary-type-classes","version":"10.0.0","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"bench":"sanctuary-benchmark","doctest":"sanctuary-doctest","lint":"sanctuary-lint","release":"sanctuary-release","test":"npm run lint && sanctuary-test && npm run doctest"},"dependencies":{"sanctuary-type-identifiers":"2.0.1"},"devDependencies":{"fantasy-land":"3.5.0","fantasy-laws":"1.2.x","jsverify":"0.8.x","list":"2.0.11","sanctuary-benchmark":"1.0.x","sanctuary-identity":"1.0.x","sanctuary-maybe":"1.0.x","sanctuary-pair":"1.0.x","sanctuary-scripts":"2.0.x","sanctuary-show":"1.0.x"},"gitHead":"27f65b38bcd7bc57ec34c74ad3e7f7f3e0c97cb8","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@10.0.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"25126f009348101dbe627c7b7efb7c6f63f792b1","size":22449,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-10.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-10.0.0.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sanctuary-type-classes_10.0.0_1550615634172_0.7748701813851089"},"_hasShrinkwrap":false,"publish_time":1550615634346,"_cnpm_publish_time":1550615634346,"_cnpmcore_publish_time":"2021-12-16T18:30:52.662Z"},"9.0.0":{"name":"sanctuary-type-classes","version":"9.0.0","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"bench":"sanctuary-benchmark","doctest":"sanctuary-doctest","lint":"sanctuary-lint","release":"sanctuary-release","test":"npm run lint && sanctuary-test && npm run doctest"},"dependencies":{"sanctuary-type-identifiers":"1.0.x"},"devDependencies":{"fantasy-land":"3.5.0","fantasy-laws":"^1.0.1","jsverify":"0.8.x","list":"2.0.11","sanctuary-benchmark":"1.0.x","sanctuary-scripts":"1.5.x","sanctuary-show":"1.0.x"},"files":["/LICENSE","/README.md","/index.js","/package.json"],"gitHead":"298c7ba36291e4294926e74ebda76f95b98be7c1","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@9.0.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"b44741ca67fa650cbd314e1ad318d730ce1309a4","size":21382,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-9.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-9.0.0.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sanctuary-type-classes_9.0.0_1525956202362_0.8830381376044241"},"_hasShrinkwrap":false,"publish_time":1525956202459,"_cnpm_publish_time":1525956202459,"_cnpmcore_publish_time":"2021-12-16T18:30:52.893Z"},"8.2.1":{"name":"sanctuary-type-classes","version":"8.2.1","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"bench":"sanctuary-benchmark","doctest":"sanctuary-doctest","lint":"sanctuary-lint","release":"sanctuary-release","test":"npm run lint && sanctuary-test && npm run doctest"},"dependencies":{"sanctuary-type-identifiers":"1.0.x"},"devDependencies":{"fantasy-land":"3.5.0","fantasy-laws":"^1.0.1","jsverify":"0.8.x","list":"2.0.11","sanctuary-benchmark":"1.0.x","sanctuary-scripts":"1.5.x"},"files":["/LICENSE","/README.md","/index.js","/package.json"],"gitHead":"6508fb9bcd80dbfcde68b2ba04cef3e948530bfb","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@8.2.1","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"49b6b76d3720336fa2a6c058b7c29296e60713f5","size":22443,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-8.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-8.2.1.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sanctuary-type-classes_8.2.1_1525953681974_0.37900843969412534"},"_hasShrinkwrap":false,"publish_time":1525953682046,"_cnpm_publish_time":1525953682046,"_cnpmcore_publish_time":"2021-12-16T18:30:53.137Z"},"8.2.0":{"name":"sanctuary-type-classes","version":"8.2.0","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"bench":"sanctuary-benchmark","doctest":"sanctuary-doctest","lint":"sanctuary-lint","release":"sanctuary-release","test":"npm run lint && sanctuary-test && npm run doctest"},"dependencies":{"sanctuary-type-identifiers":"1.0.x"},"devDependencies":{"fantasy-land":"3.5.0","fantasy-laws":"^1.0.1","jsverify":"0.8.x","list":"2.0.11","sanctuary-benchmark":"1.0.x","sanctuary-scripts":"1.5.x"},"files":["/LICENSE","/README.md","/index.js","/package.json"],"gitHead":"93141801e5710d71387e07c3296aa3a38900362d","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@8.2.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"093be764345b93390a333a06d20040083a5ec76e","size":22394,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-8.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-8.2.0.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sanctuary-type-classes_8.2.0_1525031751495_0.6971924592913052"},"_hasShrinkwrap":false,"publish_time":1525031751569,"_cnpm_publish_time":1525031751569,"_cnpmcore_publish_time":"2021-12-16T18:30:53.425Z"},"8.1.1":{"name":"sanctuary-type-classes","version":"8.1.1","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"bench":"sanctuary-benchmark","doctest":"sanctuary-doctest","lint":"sanctuary-lint","release":"sanctuary-release","test":"npm run lint && sanctuary-test && npm run doctest"},"dependencies":{"sanctuary-type-identifiers":"1.0.x"},"devDependencies":{"fantasy-land":"3.5.0","sanctuary-benchmark":"1.0.x","sanctuary-scripts":"1.0.x"},"files":["/LICENSE","/README.md","/index.js","/package.json"],"gitHead":"2f310786690ab829e9a172b0ded66edea05389bb","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@8.1.1","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"238e3a9ca675c07de7cadfbf8ef1f98f37c6890b","size":21757,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-8.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-8.1.1.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sanctuary-type-classes_8.1.1_1519857435099_0.5310128222592008"},"_hasShrinkwrap":false,"publish_time":1519857435276,"_cnpm_publish_time":1519857435276,"_cnpmcore_publish_time":"2021-12-16T18:30:53.631Z"},"8.1.0":{"name":"sanctuary-type-classes","version":"8.1.0","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"doctest":"sanctuary-doctest","lint":"sanctuary-lint","release":"sanctuary-release","test":"npm run lint && sanctuary-test && npm run doctest"},"dependencies":{"sanctuary-type-identifiers":"1.0.x"},"devDependencies":{"fantasy-land":"3.5.0","sanctuary-scripts":"1.0.x"},"files":["/LICENSE","/README.md","/index.js","/package.json"],"gitHead":"844c7f8ad611ee9eab2e5597e2fff9872b61eb09","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@8.1.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"5761c38f0c1e05a36e44d4650153d6141f5efebe","size":21730,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-8.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-8.1.0.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sanctuary-type-classes_8.1.0_1518303298254_0.012108409638382778"},"_hasShrinkwrap":false,"publish_time":1518303299168,"_cnpm_publish_time":1518303299168,"_cnpmcore_publish_time":"2021-12-16T18:30:53.911Z"},"8.0.1":{"name":"sanctuary-type-classes","version":"8.0.1","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"doctest":"sanctuary-doctest","lint":"sanctuary-lint","release":"sanctuary-release","test":"npm run lint && sanctuary-test && npm run doctest"},"dependencies":{"sanctuary-type-identifiers":"1.0.x"},"devDependencies":{"fantasy-land":"3.5.0","sanctuary-scripts":"1.0.x"},"files":["/LICENSE","/README.md","/index.js","/package.json"],"gitHead":"548b9cea8eaf090b4bad5345d1de514ea3598995","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@8.0.1","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"d422407462e0884a2e61183ec75f03bfde57c10c","size":21624,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-8.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-8.0.1.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sanctuary-type-classes-8.0.1.tgz_1517758176649_0.3127029377501458"},"directories":{},"publish_time":1517758177697,"_hasShrinkwrap":false,"_cnpm_publish_time":1517758177697,"_cnpmcore_publish_time":"2021-12-16T18:30:54.114Z"},"8.0.0":{"name":"sanctuary-type-classes","version":"8.0.0","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"test":"make lint test"},"dependencies":{"sanctuary-type-identifiers":"1.0.x"},"devDependencies":{"doctest":"0.12.x","eslint":"4.9.x","fantasy-land":"3.5.0","istanbul":"0.4.x","mocha":"2.x.x","remark-cli":"3.x.x","remark-lint-no-undefined-references":"1.x.x","remark-lint-no-unused-definitions":"1.x.x","remember-bower":"0.1.x","sanctuary-style":"1.0.x","transcribe":"0.5.x","xyz":"2.0.x"},"files":["/LICENSE","/README.md","/index.js","/package.json"],"gitHead":"35973e8481a9b0649aa31894b6e2f6f94fbd9561","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@8.0.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.3","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"8c9f15f892743c9fbcaeb11539e7882c9b53b0c3","size":21517,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-8.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-8.0.0.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sanctuary-type-classes-8.0.0.tgz_1515516325467_0.6754383270163089"},"directories":{},"publish_time":1515516326659,"_hasShrinkwrap":false,"_cnpm_publish_time":1515516326659,"_cnpmcore_publish_time":"2021-12-16T18:30:54.379Z"},"7.2.0":{"name":"sanctuary-type-classes","version":"7.2.0","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"test":"make lint test"},"dependencies":{"sanctuary-type-identifiers":"1.0.x"},"devDependencies":{"doctest":"0.12.x","eslint":"4.9.x","fantasy-land":"3.4.0","istanbul":"0.4.x","mocha":"2.x.x","remark-cli":"3.x.x","remark-lint-no-undefined-references":"1.x.x","remark-lint-no-unused-definitions":"1.x.x","remember-bower":"0.1.x","sanctuary-style":"1.0.x","transcribe":"0.5.x","xyz":"2.0.x"},"files":["/LICENSE","/README.md","/index.js","/package.json"],"gitHead":"b0c871d6649cb374e8ec47257ad502ad60cfa8b8","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@7.2.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.3","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"025bf029083fc04c59defe13925e44bd4fae0a56","size":21326,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-7.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-7.2.0.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sanctuary-type-classes-7.2.0.tgz_1515086321038_0.3210193563718349"},"directories":{},"publish_time":1515086322878,"_hasShrinkwrap":false,"_cnpm_publish_time":1515086322878,"_cnpmcore_publish_time":"2021-12-16T18:30:54.660Z"},"7.1.1":{"name":"sanctuary-type-classes","version":"7.1.1","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"test":"make lint test"},"dependencies":{"sanctuary-type-identifiers":"1.0.x"},"devDependencies":{"doctest":"0.12.x","eslint":"4.9.x","fantasy-land":"3.4.0","istanbul":"0.4.x","mocha":"2.x.x","remark-cli":"3.x.x","remark-lint-no-undefined-references":"1.x.x","remark-lint-no-unused-definitions":"1.x.x","remember-bower":"0.1.x","sanctuary-style":"1.0.x","transcribe":"0.5.x","xyz":"2.0.x"},"files":["/LICENSE","/README.md","/index.js","/package.json"],"gitHead":"d9255b3ee7583b9235816a986c7e099e6cabd697","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@7.1.1","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"084bbd3168d72e60a059f6f78f5b7e391e68ffbb","size":21041,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-7.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-7.1.1.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sanctuary-type-classes-7.1.1.tgz_1512049232494_0.2663241848349571"},"directories":{},"publish_time":1512049233676,"_hasShrinkwrap":false,"_cnpm_publish_time":1512049233676,"_cnpmcore_publish_time":"2021-12-16T18:30:54.946Z"},"7.1.0":{"name":"sanctuary-type-classes","version":"7.1.0","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"test":"make lint test"},"dependencies":{"sanctuary-type-identifiers":"1.0.x"},"devDependencies":{"doctest":"0.12.x","eslint":"3.19.x","fantasy-land":"3.4.0","istanbul":"0.4.x","mocha":"2.x.x","remark-cli":"3.x.x","remark-lint-no-undefined-references":"1.x.x","remark-lint-no-unused-definitions":"1.x.x","remember-bower":"0.1.x","sanctuary-style":"0.5.x","transcribe":"0.5.x","xyz":"2.0.x"},"files":["/LICENSE","/README.md","/index.js","/package.json"],"gitHead":"9db89adbef08a519157d912f37a37821a40e9c21","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@7.1.0","_shasum":"b75a991c0ff5822630e7eee54812a8164b558151","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.1","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"b75a991c0ff5822630e7eee54812a8164b558151","size":21088,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-7.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-7.1.0.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sanctuary-type-classes-7.1.0.tgz_1508501957788_0.41271568718366325"},"directories":{},"publish_time":1508501959014,"_hasShrinkwrap":false,"_cnpm_publish_time":1508501959014,"_cnpmcore_publish_time":"2021-12-16T18:30:55.161Z"},"7.0.0":{"name":"sanctuary-type-classes","version":"7.0.0","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"test":"make lint test"},"dependencies":{"sanctuary-type-identifiers":"1.0.x"},"devDependencies":{"doctest":"0.12.x","eslint":"3.19.x","fantasy-land":"3.3.0","istanbul":"0.4.x","mocha":"2.x.x","remark-cli":"3.x.x","remark-lint-no-undefined-references":"1.x.x","remark-lint-no-unused-definitions":"1.x.x","remember-bower":"0.1.x","sanctuary-style":"0.5.x","transcribe":"0.5.x","xyz":"2.0.x"},"files":["/LICENSE","/README.md","/index.js","/package.json"],"gitHead":"f566a33ad1c972a0782f02ef6e728c0525b56e12","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@7.0.0","_shasum":"3ed8ae3fc41a2e139bfffae6ac4a69ed47752756","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.1","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"3ed8ae3fc41a2e139bfffae6ac4a69ed47752756","size":20822,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-7.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-7.0.0.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sanctuary-type-classes-7.0.0.tgz_1506689974702_0.7771982555277646"},"directories":{},"publish_time":1506689978372,"_hasShrinkwrap":false,"_cnpm_publish_time":1506689978372,"_cnpmcore_publish_time":"2021-12-16T18:30:55.464Z"},"6.1.0":{"name":"sanctuary-type-classes","version":"6.1.0","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"test":"make lint test"},"dependencies":{"sanctuary-type-identifiers":"1.0.x"},"devDependencies":{"doctest":"0.12.x","eslint":"3.19.x","fantasy-land":"3.3.0","istanbul":"0.4.x","mocha":"2.x.x","remark-cli":"3.x.x","remark-lint-no-undefined-references":"1.x.x","remark-lint-no-unused-definitions":"1.x.x","remember-bower":"0.1.x","sanctuary-style":"0.5.x","transcribe":"0.5.x","xyz":"2.0.x"},"files":["/LICENSE","/README.md","/index.js","/package.json"],"gitHead":"af84dd95d31a5029b5c92bf469fc48eb52df63e1","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@6.1.0","_shasum":"6bd67044358c8440d561e6e2556ab88dd8cd8001","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.1","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"6bd67044358c8440d561e6e2556ab88dd8cd8001","size":20740,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-6.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-6.1.0.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sanctuary-type-classes-6.1.0.tgz_1506684017270_0.5555995341856033"},"directories":{},"publish_time":1506684018487,"_hasShrinkwrap":false,"_cnpm_publish_time":1506684018487,"_cnpmcore_publish_time":"2021-12-16T18:30:55.736Z"},"6.0.0":{"name":"sanctuary-type-classes","version":"6.0.0","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"test":"make lint test"},"dependencies":{"sanctuary-type-identifiers":"1.0.x"},"devDependencies":{"doctest":"0.12.x","eslint":"3.19.x","fantasy-land":"3.3.0","istanbul":"0.4.x","mocha":"2.x.x","remark-cli":"3.x.x","remark-lint-no-undefined-references":"1.x.x","remark-lint-no-unused-definitions":"1.x.x","remember-bower":"0.1.x","sanctuary-style":"0.5.x","transcribe":"0.5.x","xyz":"2.0.x"},"files":["/LICENSE","/README.md","/index.js","/package.json"],"gitHead":"6312ebe7f95fa202f7075f0aa2945eadb7076a58","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@6.0.0","_shasum":"1db3f8c1247de018471e978fe4956a03eb62f464","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"1db3f8c1247de018471e978fe4956a03eb62f464","size":18281,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-6.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-6.0.0.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sanctuary-type-classes-6.0.0.tgz_1495970122674_0.0942340362817049"},"directories":{},"publish_time":1495970123761,"_hasShrinkwrap":false,"_cnpm_publish_time":1495970123761,"_cnpmcore_publish_time":"2021-12-16T18:30:55.958Z"},"5.2.0":{"name":"sanctuary-type-classes","version":"5.2.0","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"test":"make lint test"},"dependencies":{"sanctuary-type-identifiers":"1.0.x"},"devDependencies":{"doctest":"0.12.x","eslint":"3.19.x","fantasy-land":"3.3.0","istanbul":"0.4.x","mocha":"2.x.x","remark-cli":"3.x.x","remark-lint-no-undefined-references":"1.x.x","remark-lint-no-unused-definitions":"1.x.x","remember-bower":"0.1.x","sanctuary-style":"0.5.x","transcribe":"0.5.x","xyz":"2.0.x"},"files":["/LICENSE","/README.md","/index.js","/package.json"],"gitHead":"d73f083607c4969844eaebf687020e94e6977db7","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@5.2.0","_shasum":"8534606f5556bef83ec9ab5c2ffef8e2842acd0f","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"8534606f5556bef83ec9ab5c2ffef8e2842acd0f","size":18225,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-5.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-5.2.0.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sanctuary-type-classes-5.2.0.tgz_1495518910321_0.9594259660225362"},"directories":{},"publish_time":1495518911522,"_hasShrinkwrap":false,"_cnpm_publish_time":1495518911522,"_cnpmcore_publish_time":"2021-12-16T18:30:56.158Z"},"5.1.0":{"name":"sanctuary-type-classes","version":"5.1.0","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"test":"make lint test"},"dependencies":{"sanctuary-type-identifiers":"1.0.x"},"devDependencies":{"doctest":"0.12.x","eslint":"3.19.x","fantasy-land":"3.2.0","istanbul":"0.4.x","mocha":"2.x.x","remark-cli":"3.x.x","remark-lint-no-undefined-references":"1.x.x","remark-lint-no-unused-definitions":"1.x.x","remember-bower":"0.1.x","sanctuary-style":"0.5.x","transcribe":"0.5.x","xyz":"2.0.x"},"files":["/LICENSE","/README.md","/index.js","/package.json"],"gitHead":"2f09ab7c000e63c19d95d76c40c882c490fc315f","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@5.1.0","_shasum":"3f71a4481073c853ebe53ba42d48e6f00223d0e9","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"3f71a4481073c853ebe53ba42d48e6f00223d0e9","size":17597,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-5.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-5.1.0.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/sanctuary-type-classes-5.1.0.tgz_1494467107742_0.8108393338043243"},"directories":{},"publish_time":1494467110141,"_hasShrinkwrap":false,"_cnpm_publish_time":1494467110141,"_cnpmcore_publish_time":"2021-12-16T18:30:56.366Z"},"5.0.0":{"name":"sanctuary-type-classes","version":"5.0.0","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"test":"make lint test"},"dependencies":{"sanctuary-type-identifiers":"1.0.x"},"devDependencies":{"doctest":"0.12.x","eslint":"3.19.x","fantasy-land":"3.2.0","istanbul":"0.4.x","mocha":"2.x.x","remark-cli":"3.x.x","remark-lint-no-undefined-references":"1.x.x","remark-lint-no-unused-definitions":"1.x.x","remember-bower":"0.1.x","sanctuary-style":"0.5.x","transcribe":"0.5.x","xyz":"2.0.x"},"files":["/LICENSE","/README.md","/index.js","/package.json"],"gitHead":"1db4db2966bea57e0c6cbab64ca382f2e8a3720c","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@5.0.0","_shasum":"183b38874b7221f7311683fa4b53baf97d818851","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"183b38874b7221f7311683fa4b53baf97d818851","size":17498,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-5.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-5.0.0.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/sanctuary-type-classes-5.0.0.tgz_1493581403389_0.8922722791321576"},"directories":{},"publish_time":1493581404371,"_hasShrinkwrap":false,"_cnpm_publish_time":1493581404371,"_cnpmcore_publish_time":"2021-12-16T18:30:56.608Z"},"4.0.0":{"name":"sanctuary-type-classes","version":"4.0.0","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"test":"make lint test"},"dependencies":{"sanctuary-type-identifiers":"1.0.x"},"devDependencies":{"doctest":"0.10.x","eslint":"2.9.x","fantasy-land":"3.1.0","istanbul":"0.4.x","mocha":"2.x.x","remark-cli":"3.x.x","remark-lint-no-undefined-references":"1.x.x","remark-lint-no-unused-definitions":"1.x.x","remember-bower":"0.1.x","sanctuary-style":"0.4.x","transcribe":"0.5.x","xyz":"2.0.x"},"files":["/LICENSE","/README.md","/index.js","/package.json"],"gitHead":"9b472c1dc84e74012202b76d4f662f84ced76ee0","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@4.0.0","_shasum":"cc75bda7dd9085e3a6363a4aea8edcfab4a49ec1","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"cc75bda7dd9085e3a6363a4aea8edcfab4a49ec1","size":15888,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-4.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-4.0.0.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/sanctuary-type-classes-4.0.0.tgz_1490795400487_0.13287644600495696"},"directories":{},"publish_time":1490795401291,"_hasShrinkwrap":false,"_cnpm_publish_time":1490795401291,"_cnpmcore_publish_time":"2021-12-16T18:30:57.001Z"},"3.1.0":{"name":"sanctuary-type-classes","version":"3.1.0","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"test":"make lint test"},"dependencies":{"sanctuary-type-identifiers":"1.0.x"},"devDependencies":{"doctest":"0.10.x","eslint":"2.9.x","fantasy-land":"3.1.0","istanbul":"0.4.x","mocha":"2.x.x","remark-cli":"3.x.x","remark-lint-no-undefined-references":"1.x.x","remark-lint-no-unused-definitions":"1.x.x","remember-bower":"0.1.x","sanctuary-style":"0.4.x","transcribe":"0.5.x","xyz":"2.0.x"},"files":["/LICENSE","/README.md","/index.js","/package.json"],"gitHead":"12608b9b6e2f1ffd2678c969450a52ce95de6eaa","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@3.1.0","_shasum":"8272dc7bb925b70b6906e73de623afd319e3d82f","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"8272dc7bb925b70b6906e73de623afd319e3d82f","size":15810,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-3.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-3.1.0.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/sanctuary-type-classes-3.1.0.tgz_1490792389747_0.6511548536363989"},"directories":{},"publish_time":1490792390622,"_hasShrinkwrap":false,"_cnpm_publish_time":1490792390622,"_cnpmcore_publish_time":"2021-12-16T18:30:57.223Z"},"3.0.1":{"name":"sanctuary-type-classes","version":"3.0.1","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"test":"make lint test"},"dependencies":{"sanctuary-type-identifiers":"1.0.x"},"devDependencies":{"doctest":"0.10.x","eslint":"2.9.x","fantasy-land":"3.0.0","istanbul":"0.4.x","mocha":"2.x.x","remember-bower":"0.1.x","sanctuary-style":"0.4.x","transcribe":"0.5.x","xyz":"2.0.x"},"files":["/LICENSE","/README.md","/index.js","/package.json"],"gitHead":"79353a9b025227beed972943bed149e04efc05b4","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@3.0.1","_shasum":"65163f8e1dfdfdc05cf842b83b608fff921cda15","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"65163f8e1dfdfdc05cf842b83b608fff921cda15","size":15249,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-3.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-3.0.1.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/sanctuary-type-classes-3.0.1.tgz_1485882693065_0.8970545465126634"},"directories":{},"publish_time":1485882695145,"_hasShrinkwrap":false,"_cnpm_publish_time":1485882695145,"_cnpmcore_publish_time":"2021-12-16T18:30:57.444Z"},"3.0.0":{"name":"sanctuary-type-classes","version":"3.0.0","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"test":"make lint test"},"dependencies":{"sanctuary-type-identifiers":"1.0.x"},"devDependencies":{"doctest":"0.10.x","eslint":"2.9.x","fantasy-land":"3.0.0","istanbul":"0.4.x","mocha":"2.x.x","remember-bower":"0.1.x","sanctuary-style":"0.4.x","transcribe":"0.5.x","xyz":"2.0.x"},"files":["/LICENSE","/README.md","/index.js","/package.json"],"gitHead":"56a97c319054bef0b8738aaefec1dc68281af2da","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@3.0.0","_shasum":"e4cf422abceb8c78b6f625d84d61fdb5c6d44116","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"e4cf422abceb8c78b6f625d84d61fdb5c6d44116","size":15251,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-3.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-3.0.0.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/sanctuary-type-classes-3.0.0.tgz_1484902538227_0.2393060342874378"},"directories":{},"publish_time":1484902538880,"_hasShrinkwrap":false,"_cnpm_publish_time":1484902538880,"_cnpmcore_publish_time":"2021-12-16T18:30:57.669Z"},"2.0.1":{"name":"sanctuary-type-classes","version":"2.0.1","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"test":"make lint test"},"dependencies":{"sanctuary-type-identifiers":"1.0.x"},"devDependencies":{"doctest":"0.10.x","eslint":"2.9.x","fantasy-land":"2.2.0","istanbul":"0.4.x","mocha":"2.x.x","remember-bower":"0.1.x","sanctuary-style":"0.4.x","transcribe":"0.5.x","xyz":"2.0.x"},"files":["/LICENSE","/README.md","/index.js","/package.json"],"gitHead":"9675c8de2272f7480a79f4d8b629a2f3b06c51a2","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@2.0.1","_shasum":"06b6cfd78e3e8d85cd93f5c2d7b08796b68d1e74","_from":".","_npmVersion":"2.15.11","_nodeVersion":"4.6.1","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"06b6cfd78e3e8d85cd93f5c2d7b08796b68d1e74","size":15261,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-2.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-2.0.1.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/sanctuary-type-classes-2.0.1.tgz_1482871497612_0.19815474492497742"},"directories":{},"publish_time":1482871499649,"_hasShrinkwrap":false,"_cnpm_publish_time":1482871499649,"_cnpmcore_publish_time":"2021-12-16T18:30:58.099Z"},"1.3.1":{"name":"sanctuary-type-classes","version":"1.3.1","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"test":"make lint test"},"dependencies":{},"devDependencies":{"doctest":"0.10.x","eslint":"2.9.x","fantasy-land":"2.1.0","istanbul":"0.4.x","mocha":"2.x.x","remember-bower":"0.1.x","sanctuary-style":"0.4.x","transcribe":"0.5.x","xyz":"2.0.x"},"files":["/LICENSE","/README.md","/index.js","/package.json"],"gitHead":"dfa9f25c97ac0f0f7d6a4e9e1b98406e00aab287","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@1.3.1","_shasum":"9a47daa3d76ad40d094e186a6faea1801b4e638e","_from":".","_npmVersion":"2.15.11","_nodeVersion":"4.6.1","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"9a47daa3d76ad40d094e186a6faea1801b4e638e","size":15208,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-1.3.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-1.3.1.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/sanctuary-type-classes-1.3.1.tgz_1482870148788_0.2704591362271458"},"directories":{},"publish_time":1482870150981,"_hasShrinkwrap":false,"_cnpm_publish_time":1482870150981,"_cnpmcore_publish_time":"2021-12-16T18:30:58.354Z"},"2.0.0":{"name":"sanctuary-type-classes","version":"2.0.0","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"test":"make lint test"},"dependencies":{"sanctuary-type-identifiers":"1.0.x"},"devDependencies":{"doctest":"0.10.x","eslint":"2.9.x","fantasy-land":"2.2.0","istanbul":"0.4.x","mocha":"2.x.x","remember-bower":"0.1.x","sanctuary-style":"0.4.x","transcribe":"0.5.x","xyz":"2.0.x"},"files":["/LICENSE","/README.md","/index.js","/package.json"],"gitHead":"294398b91ddb821c104af710af0204967355208f","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@2.0.0","_shasum":"c117b91f54d9620aa5bce3fa93f142d6995ea590","_from":".","_npmVersion":"2.15.11","_nodeVersion":"4.6.1","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"c117b91f54d9620aa5bce3fa93f142d6995ea590","size":15265,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-2.0.0.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/sanctuary-type-classes-2.0.0.tgz_1482634326902_0.9297893117181957"},"directories":{},"publish_time":1482634327135,"_hasShrinkwrap":false,"_cnpm_publish_time":1482634327135,"_cnpmcore_publish_time":"2021-12-16T18:30:58.649Z"},"1.3.0":{"name":"sanctuary-type-classes","version":"1.3.0","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"test":"make lint test"},"dependencies":{},"devDependencies":{"doctest":"0.10.x","eslint":"2.9.x","fantasy-land":"2.1.0","istanbul":"0.4.x","mocha":"2.x.x","remember-bower":"0.1.x","sanctuary-style":"0.4.x","transcribe":"0.5.x","xyz":"2.0.x"},"files":["/LICENSE","/README.md","/index.js","/package.json"],"gitHead":"d023a9799faf9eb8c2f4a085d5cfbf2bba2cfe1f","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@1.3.0","_shasum":"0c41e3cba2def503ecd5dc347d5212e8d2ea1977","_from":".","_npmVersion":"2.15.11","_nodeVersion":"4.6.1","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"0c41e3cba2def503ecd5dc347d5212e8d2ea1977","size":15215,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-1.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-1.3.0.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/sanctuary-type-classes-1.3.0.tgz_1482105414609_0.1483507016673684"},"directories":{},"publish_time":1482105415404,"_hasShrinkwrap":false,"_cnpm_publish_time":1482105415404,"_cnpmcore_publish_time":"2021-12-16T18:30:58.866Z"},"1.2.0":{"name":"sanctuary-type-classes","version":"1.2.0","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"test":"make lint test"},"dependencies":{},"devDependencies":{"doctest":"0.10.x","eslint":"2.9.x","fantasy-land":"2.1.0","istanbul":"0.4.x","mocha":"2.x.x","remember-bower":"0.1.x","sanctuary-style":"0.3.x","transcribe":"0.5.x","xyz":"1.1.x"},"files":["/LICENSE","/README.md","/index.js","/package.json"],"gitHead":"98e849cea6d90b510f0e121edf0026e70d2952ce","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@1.2.0","_shasum":"e3098c83fcfbaf35a8eb3bba2b1713ff869afa61","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"e3098c83fcfbaf35a8eb3bba2b1713ff869afa61","size":15050,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-1.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-1.2.0.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/sanctuary-type-classes-1.2.0.tgz_1479485890696_0.45768182701431215"},"directories":{},"publish_time":1479485891375,"_hasShrinkwrap":false,"_cnpm_publish_time":1479485891375,"_cnpmcore_publish_time":"2021-12-16T18:30:59.093Z"},"1.1.0":{"name":"sanctuary-type-classes","version":"1.1.0","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"test":"make lint test"},"dependencies":{},"devDependencies":{"doctest":"0.10.x","eslint":"2.9.x","fantasy-land":"2.1.0","istanbul":"0.4.x","mocha":"2.x.x","remember-bower":"0.1.x","sanctuary-style":"0.3.x","transcribe":"0.5.x","xyz":"1.1.x"},"files":["/LICENSE","/README.md","/index.js","/package.json"],"gitHead":"d1598247bdfeb513e42c551ed442f42bae346f27","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@1.1.0","_shasum":"90ca0a87e0a793abf2cf0af16a1b10f13bce66e3","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"90ca0a87e0a793abf2cf0af16a1b10f13bce66e3","size":14687,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-1.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-1.1.0.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/sanctuary-type-classes-1.1.0.tgz_1478875508259_0.7134631893131882"},"directories":{},"publish_time":1478875510563,"_hasShrinkwrap":false,"_cnpm_publish_time":1478875510563,"_cnpmcore_publish_time":"2021-12-16T18:30:59.330Z"},"1.0.0":{"name":"sanctuary-type-classes","version":"1.0.0","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"test":"make lint test"},"dependencies":{},"devDependencies":{"doctest":"0.10.x","eslint":"2.9.x","fantasy-land":"2.0.0","istanbul":"0.4.x","mocha":"2.x.x","sanctuary-style":"0.3.x","transcribe":"0.5.x","xyz":"1.1.x"},"files":["/LICENSE","/README.md","/index.js","/package.json"],"gitHead":"93a240bedebfa2dbef6f7f46b0a633aa9a1c9546","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@1.0.0","_shasum":"bda7cfb9cc2cd415eb3f5b79bee36fcc943687be","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"bda7cfb9cc2cd415eb3f5b79bee36fcc943687be","size":13302,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-1.0.0.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/sanctuary-type-classes-1.0.0.tgz_1478254809817_0.5389371807686985"},"directories":{},"publish_time":1478254811695,"_hasShrinkwrap":false,"_cnpm_publish_time":1478254811695,"_cnpmcore_publish_time":"2021-12-16T18:30:59.962Z"},"0.3.1":{"name":"sanctuary-type-classes","version":"0.3.1","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"test":"make lint test"},"dependencies":{},"devDependencies":{"doctest":"0.10.x","eslint":"2.9.x","fantasy-land":"2.0.0","istanbul":"0.4.x","mocha":"2.x.x","sanctuary-style":"0.2.x","transcribe":"0.5.x","xyz":"1.0.x"},"files":["/LICENSE","/README.md","/index.js","/package.json"],"gitHead":"26ca03df8c744667a3145cb7ae24dafab2bb7efc","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@0.3.1","_shasum":"01619928c24fb79cf46b0344a4599f4918221efe","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"01619928c24fb79cf46b0344a4599f4918221efe","size":13303,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-0.3.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-0.3.1.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/sanctuary-type-classes-0.3.1.tgz_1477742136122_0.4357830963563174"},"directories":{},"publish_time":1477742136913,"_hasShrinkwrap":false,"_cnpm_publish_time":1477742136913,"_cnpmcore_publish_time":"2021-12-16T18:31:00.289Z"},"0.3.0":{"name":"sanctuary-type-classes","version":"0.3.0","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"test":"make lint test"},"dependencies":{},"devDependencies":{"doctest":"0.10.x","eslint":"2.9.x","fantasy-land":"2.0.0","istanbul":"0.4.x","mocha":"2.x.x","sanctuary-style":"0.2.x","transcribe":"0.5.x","xyz":"1.0.x"},"files":["/LICENSE","/README.md","/index.js","/package.json"],"gitHead":"6beb9d0a9953ea86aa8daca154e3181e7e88ebcd","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@0.3.0","_shasum":"49b927c035338676b5d46e348cad3bfbfefd3087","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"49b927c035338676b5d46e348cad3bfbfefd3087","size":13401,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-0.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-0.3.0.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/sanctuary-type-classes-0.3.0.tgz_1477254228412_0.22934407065622509"},"directories":{},"publish_time":1477254230622,"_hasShrinkwrap":false,"_cnpm_publish_time":1477254230622,"_cnpmcore_publish_time":"2021-12-16T18:31:00.529Z"},"0.2.0":{"name":"sanctuary-type-classes","version":"0.2.0","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"test":"make lint test"},"dependencies":{},"devDependencies":{"doctest":"0.10.x","eslint":"2.9.x","fantasy-land":"1.0.1","istanbul":"0.4.x","mocha":"2.x.x","sanctuary-style":"0.2.x","transcribe":"0.5.x","xyz":"1.0.x"},"files":["/LICENSE","/README.md","/index.js","/package.json"],"gitHead":"d9d267ebe70cce4bd02c2c8e785253dfd637147d","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@0.2.0","_shasum":"ebb196cdc5018d126482116d568818a8b620ae32","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"ebb196cdc5018d126482116d568818a8b620ae32","size":13454,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-0.2.0.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/sanctuary-type-classes-0.2.0.tgz_1477180598227_0.7914435318671167"},"directories":{},"publish_time":1477180600365,"_hasShrinkwrap":false,"_cnpm_publish_time":1477180600365,"_cnpmcore_publish_time":"2021-12-16T18:31:00.946Z"},"0.1.0":{"name":"sanctuary-type-classes","version":"0.1.0","description":"Standard library for Fantasy Land","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-type-classes.git"},"scripts":{"test":"make lint test"},"dependencies":{},"devDependencies":{"doctest":"0.10.x","eslint":"2.9.x","fantasy-land":"1.0.1","istanbul":"0.4.x","mocha":"2.x.x","sanctuary-style":"0.2.x","transcribe":"0.5.x","xyz":"1.0.x"},"files":["/LICENSE","/README.md","/index.js","/package.json"],"gitHead":"415ed2c61a0e416088206483afd06634fbf287d5","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","_id":"sanctuary-type-classes@0.1.0","_shasum":"f501cf942a0b7e321bdc1bbf77021644c29cd52e","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"shasum":"f501cf942a0b7e321bdc1bbf77021644c29cd52e","size":12913,"noattachment":false,"key":"/sanctuary-type-classes/-/sanctuary-type-classes-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/sanctuary-type-classes/download/sanctuary-type-classes-0.1.0.tgz"},"maintainers":[{"name":"avaq","email":""},{"name":"davidchambers","email":""}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/sanctuary-type-classes-0.1.0.tgz_1476689011234_0.4677813178859651"},"directories":{},"publish_time":1476689013208,"_hasShrinkwrap":false,"_cnpm_publish_time":1476689013208,"_cnpmcore_publish_time":"2021-12-16T18:31:01.190Z"}},"readme":"# sanctuary-type-classes\n\nThe [Fantasy Land Specification][FL] \"specifies interoperability of common\nalgebraic structures\" by defining a number of type classes. For each type\nclass, it states laws which every member of a type must obey in order for\nthe type to be a member of the type class. In order for the Maybe type to\nbe considered a [Functor][], for example, every `Maybe a` value must have\na `fantasy-land/map` method which obeys the identity and composition laws.\n\nThis project provides:\n\n  - [`TypeClass`](#TypeClass), a function for defining type classes;\n  - one `TypeClass` value for each Fantasy Land type class;\n  - lawful Fantasy Land methods for JavaScript's built-in types;\n  - one function for each Fantasy Land method; and\n  - several functions derived from these functions.\n\n## Type-class hierarchy\n\n<pre>\n <a href=\"#Setoid\">Setoid</a>   <a href=\"#Semigroupoid\">Semigroupoid</a>  <a href=\"#Semigroup\">Semigroup</a>   <a href=\"#Foldable\">Foldable</a>        <a href=\"#Functor\">Functor</a>      <a href=\"#Contravariant\">Contravariant</a>  <a href=\"#Filterable\">Filterable</a>\n(<a href=\"#equals\">equals</a>)    (<a href=\"#compose\">compose</a>)    (<a href=\"#concat\">concat</a>)   (<a href=\"#reduce\">reduce</a>)         (<a href=\"#map\">map</a>)        (<a href=\"#contramap\">contramap</a>)    (<a href=\"#filter\">filter</a>)\n    |           |           |           \\         / | | | | \\\n    |           |           |            \\       /  | | | |  \\\n    |           |           |             \\     /   | | | |   \\\n    |           |           |              \\   /    | | | |    \\\n    |           |           |               \\ /     | | | |     \\\n   <a href=\"#Ord\">Ord</a>      <a href=\"#Category\">Category</a>     <a href=\"#Monoid\">Monoid</a>         <a href=\"#Traversable\">Traversable</a> | | | |      \\\n  (<a href=\"#lte\">lte</a>)       (<a href=\"#id\">id</a>)       (<a href=\"#empty\">empty</a>)        (<a href=\"#traverse\">traverse</a>)  / | | \\       \\\n                            |                      /  | |  \\       \\\n                            |                     /   / \\   \\       \\\n                            |             <a href=\"#Profunctor\">Profunctor</a> /   \\ <a href=\"#Bifunctor\">Bifunctor</a> \\\n                            |              (<a href=\"#promap\">promap</a>) /     \\ (<a href=\"#bimap\">bimap</a>)   \\\n                            |                      /       \\           \\\n                          <a href=\"#Group\">Group</a>                   /         \\           \\\n                         (<a href=\"#invert\">invert</a>)               <a href=\"#Alt\">Alt</a>        <a href=\"#Apply\">Apply</a>      <a href=\"#Extend\">Extend</a>\n                                               (<a href=\"#alt\">alt</a>)        (<a href=\"#ap\">ap</a>)     (<a href=\"#extend\">extend</a>)\n                                                /           / \\           \\\n                                               /           /   \\           \\\n                                              /           /     \\           \\\n                                             /           /       \\           \\\n                                            /           /         \\           \\\n                                          <a href=\"#Plus\">Plus</a>    <a href=\"#Applicative\">Applicative</a>    <a href=\"#Chain\">Chain</a>      <a href=\"#Comonad\">Comonad</a>\n                                         (<a href=\"#zero\">zero</a>)       (<a href=\"#of\">of</a>)      (<a href=\"#chain\">chain</a>)    (<a href=\"#extract\">extract</a>)\n                                            \\         / \\         / \\\n                                             \\       /   \\       /   \\\n                                              \\     /     \\     /     \\\n                                               \\   /       \\   /       \\\n                                                \\ /         \\ /         \\\n                                            <a href=\"#Alternative\">Alternative</a>    <a href=\"#Monad\">Monad</a>     <a href=\"#ChainRec\">ChainRec</a>\n                                                                    (<a href=\"#chainRec\">chainRec</a>)\n</pre>\n\n## API\n\n#### <a name=\"TypeClass\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L168\">`TypeClass :: (String, String, Array TypeClass, a -⁠> Boolean) -⁠> TypeClass`</a>\n\nThe arguments are:\n\n  - the name of the type class, prefixed by its npm package name;\n  - the documentation URL of the type class;\n  - an array of dependencies; and\n  - a predicate which accepts any JavaScript value and returns `true`\n    if the value satisfies the requirements of the type class; `false`\n    otherwise.\n\nExample:\n\n```javascript\n//    hasMethod :: String -> a -> Boolean\nconst hasMethod = name => x => x != null && typeof x[name] == 'function';\n\n//    Foo :: TypeClass\nconst Foo = Z.TypeClass (\n  'my-package/Foo',\n  'http://example.com/my-package#Foo',\n  [],\n  hasMethod ('foo')\n);\n\n//    Bar :: TypeClass\nconst Bar = Z.TypeClass (\n  'my-package/Bar',\n  'http://example.com/my-package#Bar',\n  [Foo],\n  hasMethod ('bar')\n);\n```\n\nTypes whose values have a `foo` method are members of the Foo type class.\nMembers of the Foo type class whose values have a `bar` method are also\nmembers of the Bar type class.\n\nEach `TypeClass` value has a `test` field: a function which accepts\nany JavaScript value and returns `true` if the value satisfies the\ntype class's predicate and the predicates of all the type class's\ndependencies; `false` otherwise.\n\n`TypeClass` values may be used with [sanctuary-def][type-classes]\nto define parametrically polymorphic functions which verify their\ntype-class constraints at run time.\n\n#### <a name=\"Setoid\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L312\">`Setoid :: TypeClass`</a>\n\n`TypeClass` value for [Setoid][].\n\n```javascript\n> Setoid.test (null)\ntrue\n```\n\n#### <a name=\"Ord\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L322\">`Ord :: TypeClass`</a>\n\n`TypeClass` value for [Ord][].\n\n```javascript\n> Ord.test (0)\ntrue\n\n> Ord.test (Math.sqrt)\nfalse\n```\n\n#### <a name=\"Semigroupoid\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L335\">`Semigroupoid :: TypeClass`</a>\n\n`TypeClass` value for [Semigroupoid][].\n\n```javascript\n> Semigroupoid.test (Math.sqrt)\ntrue\n\n> Semigroupoid.test (0)\nfalse\n```\n\n#### <a name=\"Category\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L348\">`Category :: TypeClass`</a>\n\n`TypeClass` value for [Category][].\n\n```javascript\n> Category.test (Math.sqrt)\ntrue\n\n> Category.test (0)\nfalse\n```\n\n#### <a name=\"Semigroup\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L361\">`Semigroup :: TypeClass`</a>\n\n`TypeClass` value for [Semigroup][].\n\n```javascript\n> Semigroup.test ('')\ntrue\n\n> Semigroup.test (0)\nfalse\n```\n\n#### <a name=\"Monoid\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L374\">`Monoid :: TypeClass`</a>\n\n`TypeClass` value for [Monoid][].\n\n```javascript\n> Monoid.test ('')\ntrue\n\n> Monoid.test (0)\nfalse\n```\n\n#### <a name=\"Group\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L387\">`Group :: TypeClass`</a>\n\n`TypeClass` value for [Group][].\n\n```javascript\n> Group.test (Sum (0))\ntrue\n\n> Group.test ('')\nfalse\n```\n\n#### <a name=\"Filterable\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L400\">`Filterable :: TypeClass`</a>\n\n`TypeClass` value for [Filterable][].\n\n```javascript\n> Filterable.test ({})\ntrue\n\n> Filterable.test ('')\nfalse\n```\n\n#### <a name=\"Functor\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L413\">`Functor :: TypeClass`</a>\n\n`TypeClass` value for [Functor][].\n\n```javascript\n> Functor.test ([])\ntrue\n\n> Functor.test ('')\nfalse\n```\n\n#### <a name=\"Bifunctor\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L426\">`Bifunctor :: TypeClass`</a>\n\n`TypeClass` value for [Bifunctor][].\n\n```javascript\n> Bifunctor.test (Pair ('foo') (64))\ntrue\n\n> Bifunctor.test ([])\nfalse\n```\n\n#### <a name=\"Profunctor\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L439\">`Profunctor :: TypeClass`</a>\n\n`TypeClass` value for [Profunctor][].\n\n```javascript\n> Profunctor.test (Math.sqrt)\ntrue\n\n> Profunctor.test ([])\nfalse\n```\n\n#### <a name=\"Apply\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L452\">`Apply :: TypeClass`</a>\n\n`TypeClass` value for [Apply][].\n\n```javascript\n> Apply.test ([])\ntrue\n\n> Apply.test ('')\nfalse\n```\n\n#### <a name=\"Applicative\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L465\">`Applicative :: TypeClass`</a>\n\n`TypeClass` value for [Applicative][].\n\n```javascript\n> Applicative.test ([])\ntrue\n\n> Applicative.test ({})\nfalse\n```\n\n#### <a name=\"Chain\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L478\">`Chain :: TypeClass`</a>\n\n`TypeClass` value for [Chain][].\n\n```javascript\n> Chain.test ([])\ntrue\n\n> Chain.test ({})\nfalse\n```\n\n#### <a name=\"ChainRec\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L491\">`ChainRec :: TypeClass`</a>\n\n`TypeClass` value for [ChainRec][].\n\n```javascript\n> ChainRec.test ([])\ntrue\n\n> ChainRec.test ({})\nfalse\n```\n\n#### <a name=\"Monad\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L504\">`Monad :: TypeClass`</a>\n\n`TypeClass` value for [Monad][].\n\n```javascript\n> Monad.test ([])\ntrue\n\n> Monad.test ({})\nfalse\n```\n\n#### <a name=\"Alt\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L517\">`Alt :: TypeClass`</a>\n\n`TypeClass` value for [Alt][].\n\n```javascript\n> Alt.test ({})\ntrue\n\n> Alt.test ('')\nfalse\n```\n\n#### <a name=\"Plus\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L530\">`Plus :: TypeClass`</a>\n\n`TypeClass` value for [Plus][].\n\n```javascript\n> Plus.test ({})\ntrue\n\n> Plus.test ('')\nfalse\n```\n\n#### <a name=\"Alternative\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L543\">`Alternative :: TypeClass`</a>\n\n`TypeClass` value for [Alternative][].\n\n```javascript\n> Alternative.test ([])\ntrue\n\n> Alternative.test ({})\nfalse\n```\n\n#### <a name=\"Foldable\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L556\">`Foldable :: TypeClass`</a>\n\n`TypeClass` value for [Foldable][].\n\n```javascript\n> Foldable.test ({})\ntrue\n\n> Foldable.test ('')\nfalse\n```\n\n#### <a name=\"Traversable\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L569\">`Traversable :: TypeClass`</a>\n\n`TypeClass` value for [Traversable][].\n\n```javascript\n> Traversable.test ([])\ntrue\n\n> Traversable.test ('')\nfalse\n```\n\n#### <a name=\"Extend\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L582\">`Extend :: TypeClass`</a>\n\n`TypeClass` value for [Extend][].\n\n```javascript\n> Extend.test ([])\ntrue\n\n> Extend.test ({})\nfalse\n```\n\n#### <a name=\"Comonad\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L595\">`Comonad :: TypeClass`</a>\n\n`TypeClass` value for [Comonad][].\n\n```javascript\n> Comonad.test (Identity (0))\ntrue\n\n> Comonad.test ([])\nfalse\n```\n\n#### <a name=\"Contravariant\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L608\">`Contravariant :: TypeClass`</a>\n\n`TypeClass` value for [Contravariant][].\n\n```javascript\n> Contravariant.test (Math.sqrt)\ntrue\n\n> Contravariant.test ([])\nfalse\n```\n\n#### <a name=\"equals\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1127\">`equals :: (a, b) -⁠> Boolean`</a>\n\nReturns `true` if its arguments are of the same type and equal according\nto the type's [`fantasy-land/equals`][] method; `false` otherwise.\n\n`fantasy-land/equals` implementations are provided for the following\nbuilt-in types: Null, Undefined, Boolean, Number, Date, RegExp, String,\nArray, Arguments, Error, Object, and Function.\n\nThe algorithm supports circular data structures. Two arrays are equal\nif they have the same index paths and for each path have equal values.\nTwo arrays which represent `[1, [1, [1, [1, [1, ...]]]]]`, for example,\nare equal even if their internal structures differ. Two objects are equal\nif they have the same property paths and for each path have equal values.\n\n```javascript\n> equals (0, -0)\ntrue\n\n> equals (NaN, NaN)\ntrue\n\n> equals (Cons (1, Cons (2, Nil)), Cons (1, Cons (2, Nil)))\ntrue\n\n> equals (Cons (1, Cons (2, Nil)), Cons (2, Cons (1, Nil)))\nfalse\n```\n\n#### <a name=\"lt\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1179\">`lt :: (a, b) -⁠> Boolean`</a>\n\nReturns `true` if its arguments are of the same type and the first is\nless than the second according to the type's [`fantasy-land/lte`][]\nmethod; `false` otherwise.\n\nThis function is derived from [`lte`](#lte).\n\nSee also [`gt`](#gt) and [`gte`](#gte).\n\n```javascript\n> lt (0, 0)\nfalse\n\n> lt (0, 1)\ntrue\n\n> lt (1, 0)\nfalse\n```\n\n#### <a name=\"lte\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1203\">`lte :: (a, b) -⁠> Boolean`</a>\n\nReturns `true` if its arguments are of the same type and the first\nis less than or equal to the second according to the type's\n[`fantasy-land/lte`][] method; `false` otherwise.\n\n`fantasy-land/lte` implementations are provided for the following\nbuilt-in types: Null, Undefined, Boolean, Number, Date, String, Array,\nArguments, and Object.\n\nThe algorithm supports circular data structures in the same manner as\n[`equals`](#equals).\n\nSee also [`lt`](#lt), [`gt`](#gt), and [`gte`](#gte).\n\n```javascript\n> lte (0, 0)\ntrue\n\n> lte (0, 1)\ntrue\n\n> lte (1, 0)\nfalse\n```\n\n#### <a name=\"gt\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1250\">`gt :: (a, b) -⁠> Boolean`</a>\n\nReturns `true` if its arguments are of the same type and the first is\ngreater than the second according to the type's [`fantasy-land/lte`][]\nmethod; `false` otherwise.\n\nThis function is derived from [`lte`](#lte).\n\nSee also [`lt`](#lt) and [`gte`](#gte).\n\n```javascript\n> gt (0, 0)\nfalse\n\n> gt (0, 1)\nfalse\n\n> gt (1, 0)\ntrue\n```\n\n#### <a name=\"gte\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1274\">`gte :: (a, b) -⁠> Boolean`</a>\n\nReturns `true` if its arguments are of the same type and the first\nis greater than or equal to the second according to the type's\n[`fantasy-land/lte`][] method; `false` otherwise.\n\nThis function is derived from [`lte`](#lte).\n\nSee also [`lt`](#lt) and [`gt`](#gt).\n\n```javascript\n> gte (0, 0)\ntrue\n\n> gte (0, 1)\nfalse\n\n> gte (1, 0)\ntrue\n```\n\n#### <a name=\"min\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1298\">`min :: Ord a => (a, a) -⁠> a`</a>\n\nReturns the smaller of its two arguments.\n\nThis function is derived from [`lte`](#lte).\n\nSee also [`max`](#max).\n\n```javascript\n> min (10, 2)\n2\n\n> min (new Date ('1999-12-31'), new Date ('2000-01-01'))\nnew Date ('1999-12-31')\n\n> min ('10', '2')\n'10'\n```\n\n#### <a name=\"max\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1320\">`max :: Ord a => (a, a) -⁠> a`</a>\n\nReturns the larger of its two arguments.\n\nThis function is derived from [`lte`](#lte).\n\nSee also [`min`](#min).\n\n```javascript\n> max (10, 2)\n10\n\n> max (new Date ('1999-12-31'), new Date ('2000-01-01'))\nnew Date ('2000-01-01')\n\n> max ('10', '2')\n'2'\n```\n\n#### <a name=\"clamp\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1342\">`clamp :: Ord a => (a, a, a) -⁠> a`</a>\n\nTakes a lower bound, an upper bound, and a value of the same type.\nReturns the value if it is within the bounds; the nearer bound otherwise.\n\nThis function is derived from [`min`](#min) and [`max`](#max).\n\n```javascript\n> clamp (0, 100, 42)\n42\n\n> clamp (0, 100, -1)\n0\n\n> clamp ('A', 'Z', '~')\n'Z'\n```\n\n#### <a name=\"compose\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1363\">`compose :: Semigroupoid c => (c j k, c i j) -⁠> c i k`</a>\n\nFunction wrapper for [`fantasy-land/compose`][].\n\n`fantasy-land/compose` implementations are provided for the following\nbuilt-in types: Function.\n\n```javascript\n> compose (Math.sqrt, x => x + 1) (99)\n10\n```\n\n#### <a name=\"id\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1378\">`id :: Category c => TypeRep c -⁠> c`</a>\n\nFunction wrapper for [`fantasy-land/id`][].\n\n`fantasy-land/id` implementations are provided for the following\nbuilt-in types: Function.\n\n```javascript\n> id (Function) ('foo')\n'foo'\n```\n\n#### <a name=\"concat\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1393\">`concat :: Semigroup a => (a, a) -⁠> a`</a>\n\nFunction wrapper for [`fantasy-land/concat`][].\n\n`fantasy-land/concat` implementations are provided for the following\nbuilt-in types: String, Array, and Object.\n\n```javascript\n> concat ('abc', 'def')\n'abcdef'\n\n> concat ([1, 2, 3], [4, 5, 6])\n[1, 2, 3, 4, 5, 6]\n\n> concat ({x: 1, y: 2}, {y: 3, z: 4})\n{x: 1, y: 3, z: 4}\n\n> concat (Cons ('foo', Cons ('bar', Cons ('baz', Nil))), Cons ('quux', Nil))\nCons ('foo', Cons ('bar', Cons ('baz', Cons ('quux', Nil))))\n```\n\n#### <a name=\"empty\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1417\">`empty :: Monoid m => TypeRep m -⁠> m`</a>\n\nFunction wrapper for [`fantasy-land/empty`][].\n\n`fantasy-land/empty` implementations are provided for the following\nbuilt-in types: String, Array, and Object.\n\n```javascript\n> empty (String)\n''\n\n> empty (Array)\n[]\n\n> empty (Object)\n{}\n\n> empty (List)\nNil\n```\n\n#### <a name=\"invert\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1441\">`invert :: Group g => g -⁠> g`</a>\n\nFunction wrapper for [`fantasy-land/invert`][].\n\n```javascript\n> invert (Sum (5))\nSum (-5)\n```\n\n#### <a name=\"filter\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1453\">`filter :: Filterable f => (a -⁠> Boolean, f a) -⁠> f a`</a>\n\nFunction wrapper for [`fantasy-land/filter`][]. Discards every element\nwhich does not satisfy the predicate.\n\n`fantasy-land/filter` implementations are provided for the following\nbuilt-in types: Array and Object.\n\nSee also [`reject`](#reject).\n\n```javascript\n> filter (x => x % 2 == 1, [1, 2, 3])\n[1, 3]\n\n> filter (x => x % 2 == 1, {x: 1, y: 2, z: 3})\n{x: 1, z: 3}\n\n> filter (x => x % 2 == 1, Cons (1, Cons (2, Cons (3, Nil))))\nCons (1, Cons (3, Nil))\n\n> filter (x => x % 2 == 1, Nothing)\nNothing\n\n> filter (x => x % 2 == 1, Just (0))\nNothing\n\n> filter (x => x % 2 == 1, Just (1))\nJust (1)\n```\n\n#### <a name=\"reject\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1486\">`reject :: Filterable f => (a -⁠> Boolean, f a) -⁠> f a`</a>\n\nDiscards every element which satisfies the predicate.\n\nThis function is derived from [`filter`](#filter).\n\n```javascript\n> reject (x => x % 2 == 1, [1, 2, 3])\n[2]\n\n> reject (x => x % 2 == 1, {x: 1, y: 2, z: 3})\n{y: 2}\n\n> reject (x => x % 2 == 1, Cons (1, Cons (2, Cons (3, Nil))))\nCons (2, Nil)\n\n> reject (x => x % 2 == 1, Nothing)\nNothing\n\n> reject (x => x % 2 == 1, Just (0))\nJust (0)\n\n> reject (x => x % 2 == 1, Just (1))\nNothing\n```\n\n#### <a name=\"map\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1515\">`map :: Functor f => (a -⁠> b, f a) -⁠> f b`</a>\n\nFunction wrapper for [`fantasy-land/map`][].\n\n`fantasy-land/map` implementations are provided for the following\nbuilt-in types: Array, Object, and Function.\n\n```javascript\n> map (Math.sqrt, [1, 4, 9])\n[1, 2, 3]\n\n> map (Math.sqrt, {x: 1, y: 4, z: 9})\n{x: 1, y: 2, z: 3}\n\n> map (Math.sqrt, s => s.length) ('Sanctuary')\n3\n\n> map (Math.sqrt, Pair ('foo') (64))\nPair ('foo') (8)\n\n> map (Math.sqrt, Nil)\nNil\n\n> map (Math.sqrt, Cons (1, Cons (4, Cons (9, Nil))))\nCons (1, Cons (2, Cons (3, Nil)))\n```\n\n#### <a name=\"flip\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1545\">`flip :: Functor f => (f (a -⁠> b), a) -⁠> f b`</a>\n\nMaps over the given functions, applying each to the given value.\n\nThis function is derived from [`map`](#map).\n\n```javascript\n> flip (x => y => x + y, '!') ('foo')\n'foo!'\n\n> flip ([Math.floor, Math.ceil], 1.5)\n[1, 2]\n\n> flip ({floor: Math.floor, ceil: Math.ceil}, 1.5)\n{floor: 1, ceil: 2}\n\n> flip (Cons (Math.floor, Cons (Math.ceil, Nil)), 1.5)\nCons (1, Cons (2, Nil))\n```\n\n#### <a name=\"bimap\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1568\">`bimap :: Bifunctor f => (a -⁠> b, c -⁠> d, f a c) -⁠> f b d`</a>\n\nFunction wrapper for [`fantasy-land/bimap`][].\n\n```javascript\n> bimap (s => s.toUpperCase (), Math.sqrt, Pair ('foo') (64))\nPair ('FOO') (8)\n```\n\n#### <a name=\"mapLeft\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1580\">`mapLeft :: Bifunctor f => (a -⁠> b, f a c) -⁠> f b c`</a>\n\nMaps the given function over the left side of a Bifunctor.\n\n```javascript\n> mapLeft (Math.sqrt, Pair (64) (9))\nPair (8) (9)\n```\n\n#### <a name=\"promap\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1592\">`promap :: Profunctor p => (a -⁠> b, c -⁠> d, p b c) -⁠> p a d`</a>\n\nFunction wrapper for [`fantasy-land/promap`][].\n\n`fantasy-land/promap` implementations are provided for the following\nbuilt-in types: Function.\n\n```javascript\n> promap (Math.abs, x => x + 1, Math.sqrt) (-100)\n11\n```\n\n#### <a name=\"ap\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1607\">`ap :: Apply f => (f (a -⁠> b), f a) -⁠> f b`</a>\n\nFunction wrapper for [`fantasy-land/ap`][].\n\n`fantasy-land/ap` implementations are provided for the following\nbuilt-in types: Array, Object, and Function.\n\n```javascript\n> ap ([Math.sqrt, x => x * x], [1, 4, 9, 16, 25])\n[1, 2, 3, 4, 5, 1, 16, 81, 256, 625]\n\n> ap ({a: Math.sqrt, b: x => x * x}, {a: 16, b: 10, c: 1})\n{a: 4, b: 100}\n\n> ap (s => n => s.slice (0, n), s => Math.ceil (s.length / 2)) ('Haskell')\n'Hask'\n\n> ap (Identity (Math.sqrt), Identity (64))\nIdentity (8)\n\n> ap (Cons (Math.sqrt, Cons (x => x * x, Nil)), Cons (16, Cons (100, Nil)))\nCons (4, Cons (10, Cons (256, Cons (10000, Nil))))\n```\n\n#### <a name=\"lift2\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1634\">`lift2 :: Apply f => (a -⁠> b -⁠> c, f a, f b) -⁠> f c`</a>\n\nLifts `a -> b -> c` to `Apply f => f a -> f b -> f c` and returns the\nresult of applying this to the given arguments.\n\nThis function is derived from [`map`](#map) and [`ap`](#ap).\n\nSee also [`lift3`](#lift3).\n\n```javascript\n> lift2 (x => y => Math.pow (x, y), [10], [1, 2, 3])\n[10, 100, 1000]\n\n> lift2 (x => y => Math.pow (x, y), Identity (10), Identity (3))\nIdentity (1000)\n```\n\n#### <a name=\"lift3\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1654\">`lift3 :: Apply f => (a -⁠> b -⁠> c -⁠> d, f a, f b, f c) -⁠> f d`</a>\n\nLifts `a -> b -> c -> d` to `Apply f => f a -> f b -> f c -> f d` and\nreturns the result of applying this to the given arguments.\n\nThis function is derived from [`map`](#map) and [`ap`](#ap).\n\nSee also [`lift2`](#lift2).\n\n```javascript\n> lift3 (x => y => z => x + z + y,\n.        ['<', '['],\n.        ['>', ']'],\n.        ['foo', 'bar', 'baz'])\n[ '<foo>', '<bar>', '<baz>',\n. '<foo]', '<bar]', '<baz]',\n. '[foo>', '[bar>', '[baz>',\n. '[foo]', '[bar]', '[baz]' ]\n\n> lift3 (x => y => z => x + z + y,\n.        Identity ('<'),\n.        Identity ('>'),\n.        Identity ('baz'))\nIdentity ('<baz>')\n```\n\n#### <a name=\"apFirst\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1683\">`apFirst :: Apply f => (f a, f b) -⁠> f a`</a>\n\nCombines two effectful actions, keeping only the result of the first.\nEquivalent to Haskell's `(<*)` function.\n\nThis function is derived from [`lift2`](#lift2).\n\nSee also [`apSecond`](#apSecond).\n\n```javascript\n> apFirst ([1, 2], [3, 4])\n[1, 1, 2, 2]\n\n> apFirst (Identity (1), Identity (2))\nIdentity (1)\n```\n\n#### <a name=\"apSecond\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1703\">`apSecond :: Apply f => (f a, f b) -⁠> f b`</a>\n\nCombines two effectful actions, keeping only the result of the second.\nEquivalent to Haskell's `(*>)` function.\n\nThis function is derived from [`lift2`](#lift2).\n\nSee also [`apFirst`](#apFirst).\n\n```javascript\n> apSecond ([1, 2], [3, 4])\n[3, 4, 3, 4]\n\n> apSecond (Identity (1), Identity (2))\nIdentity (2)\n```\n\n#### <a name=\"of\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1723\">`of :: Applicative f => (TypeRep f, a) -⁠> f a`</a>\n\nFunction wrapper for [`fantasy-land/of`][].\n\n`fantasy-land/of` implementations are provided for the following\nbuilt-in types: Array and Function.\n\n```javascript\n> of (Array, 42)\n[42]\n\n> of (Function, 42) (null)\n42\n\n> of (List, 42)\nCons (42, Nil)\n```\n\n#### <a name=\"append\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1744\">`append :: (Applicative f, Semigroup (f a)) => (a, f a) -⁠> f a`</a>\n\nReturns the result of appending the first argument to the second.\n\nThis function is derived from [`concat`](#concat) and [`of`](#of).\n\nSee also [`prepend`](#prepend).\n\n```javascript\n> append (3, [1, 2])\n[1, 2, 3]\n\n> append (3, Cons (1, Cons (2, Nil)))\nCons (1, Cons (2, Cons (3, Nil)))\n```\n\n#### <a name=\"prepend\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1763\">`prepend :: (Applicative f, Semigroup (f a)) => (a, f a) -⁠> f a`</a>\n\nReturns the result of prepending the first argument to the second.\n\nThis function is derived from [`concat`](#concat) and [`of`](#of).\n\nSee also [`append`](#append).\n\n```javascript\n> prepend (1, [2, 3])\n[1, 2, 3]\n\n> prepend (1, Cons (2, Cons (3, Nil)))\nCons (1, Cons (2, Cons (3, Nil)))\n```\n\n#### <a name=\"chain\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1782\">`chain :: Chain m => (a -⁠> m b, m a) -⁠> m b`</a>\n\nFunction wrapper for [`fantasy-land/chain`][].\n\n`fantasy-land/chain` implementations are provided for the following\nbuilt-in types: Array and Function.\n\n```javascript\n> chain (x => [x, x], [1, 2, 3])\n[1, 1, 2, 2, 3, 3]\n\n> chain (x => x % 2 == 1 ? of (List, x) : Nil,\n.        Cons (1, Cons (2, Cons (3, Nil))))\nCons (1, Cons (3, Nil))\n\n> chain (n => s => s.slice (0, n),\n.        s => Math.ceil (s.length / 2))\n.       ('Haskell')\n'Hask'\n```\n\n#### <a name=\"join\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1806\">`join :: Chain m => m (m a) -⁠> m a`</a>\n\nRemoves one level of nesting from a nested monadic structure.\n\nThis function is derived from [`chain`](#chain).\n\n```javascript\n> join ([[1], [2], [3]])\n[1, 2, 3]\n\n> join ([[[1, 2, 3]]])\n[[1, 2, 3]]\n\n> join (Identity (Identity (1)))\nIdentity (1)\n```\n\n#### <a name=\"chainRec\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1826\">`chainRec :: ChainRec m => (TypeRep m, (a -⁠> c, b -⁠> c, a) -⁠> m c, a) -⁠> m b`</a>\n\nFunction wrapper for [`fantasy-land/chainRec`][].\n\n`fantasy-land/chainRec` implementations are provided for the following\nbuilt-in types: Array.\n\n```javascript\n> chainRec (\n.   Array,\n.   (next, done, s) => s.length == 2 ? [s + '!', s + '?'].map (done)\n.                                    : [s + 'o', s + 'n'].map (next),\n.   ''\n. )\n['oo!', 'oo?', 'on!', 'on?', 'no!', 'no?', 'nn!', 'nn?']\n```\n\n#### <a name=\"alt\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1846\">`alt :: Alt f => (f a, f a) -⁠> f a`</a>\n\nFunction wrapper for [`fantasy-land/alt`][].\n\n`fantasy-land/alt` implementations are provided for the following\nbuilt-in types: Array and Object.\n\n```javascript\n> alt ([1, 2, 3], [4, 5, 6])\n[1, 2, 3, 4, 5, 6]\n\n> alt (Nothing, Nothing)\nNothing\n\n> alt (Nothing, Just (1))\nJust (1)\n\n> alt (Just (2), Just (3))\nJust (2)\n```\n\n#### <a name=\"zero\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1870\">`zero :: Plus f => TypeRep f -⁠> f a`</a>\n\nFunction wrapper for [`fantasy-land/zero`][].\n\n`fantasy-land/zero` implementations are provided for the following\nbuilt-in types: Array and Object.\n\n```javascript\n> zero (Array)\n[]\n\n> zero (Object)\n{}\n\n> zero (Maybe)\nNothing\n```\n\n#### <a name=\"reduce\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1891\">`reduce :: Foldable f => ((b, a) -⁠> b, b, f a) -⁠> b`</a>\n\nFunction wrapper for [`fantasy-land/reduce`][].\n\n`fantasy-land/reduce` implementations are provided for the following\nbuilt-in types: Array and Object.\n\n```javascript\n> reduce ((xs, x) => [x].concat (xs), [], [1, 2, 3])\n[3, 2, 1]\n\n> reduce (concat, '', Cons ('foo', Cons ('bar', Cons ('baz', Nil))))\n'foobarbaz'\n```\n\n#### <a name=\"size\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1909\">`size :: Foldable f => f a -⁠> Integer`</a>\n\nReturns the number of elements of the given structure.\n\nThis function is derived from [`reduce`](#reduce).\n\n```javascript\n> size ([])\n0\n\n> size (['foo', 'bar', 'baz'])\n3\n\n> size (Nil)\n0\n\n> size (Cons ('foo', Cons ('bar', Cons ('baz', Nil))))\n3\n```\n\n#### <a name=\"all\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1934\">`all :: Foldable f => (a -⁠> Boolean, f a) -⁠> Boolean`</a>\n\nReturns `true` if all the elements of the structure satisfy the\npredicate; `false` otherwise.\n\nThis function is derived from [`reduce`](#reduce).\n\nSee also [`any`](#any) and [`none`](#none).\n\n```javascript\n> all (Number.isInteger, [])\ntrue\n\n> all (Number.isInteger, [1, 2, 3])\ntrue\n\n> all (Number.isInteger, [0, 0.25, 0.5, 0.75, 1])\nfalse\n```\n\n#### <a name=\"any\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1959\">`any :: Foldable f => (a -⁠> Boolean, f a) -⁠> Boolean`</a>\n\nReturns `true` if any element of the structure satisfies the predicate;\n`false` otherwise.\n\nThis function is derived from [`reduce`](#reduce).\n\nSee also [`all`](#all) and [`none`](#none).\n\n```javascript\n> any (Number.isInteger, [])\nfalse\n\n> any (Number.isInteger, [1, 2, 3])\ntrue\n\n> any (Number.isInteger, [0, 0.25, 0.5, 0.75, 1])\ntrue\n```\n\n#### <a name=\"none\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L1984\">`none :: Foldable f => (a -⁠> Boolean, f a) -⁠> Boolean`</a>\n\nReturns `true` if none of the elements of the structure satisfies the\npredicate; `false` otherwise.\n\nThis function is derived from [`any`](#any). `none (pred, foldable)` is\nequivalent to `!(any (pred, foldable))`.\n\nSee also [`all`](#all).\n\n```javascript\n> none (Number.isInteger, [])\ntrue\n\n> none (Number.isInteger, [0, 0.25, 0.5, 0.75, 1])\nfalse\n```\n\n#### <a name=\"elem\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L2005\">`elem :: (Setoid a, Foldable f) => (a, f a) -⁠> Boolean`</a>\n\nTakes a value and a structure and returns `true` if the\nvalue is an element of the structure; `false` otherwise.\n\nThis function is derived from [`equals`](#equals) and\n[`reduce`](#reduce).\n\n```javascript\n> elem ('c', ['a', 'b', 'c'])\ntrue\n\n> elem ('x', ['a', 'b', 'c'])\nfalse\n\n> elem (3, {x: 1, y: 2, z: 3})\ntrue\n\n> elem (8, {x: 1, y: 2, z: 3})\nfalse\n\n> elem (0, Just (0))\ntrue\n\n> elem (0, Just (1))\nfalse\n\n> elem (0, Nothing)\nfalse\n```\n\n#### <a name=\"intercalate\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L2039\">`intercalate :: (Monoid m, Foldable f) => (m, f m) -⁠> m`</a>\n\nConcatenates the elements of the given structure, separating each pair\nof adjacent elements with the given separator.\n\nThis function is derived from [`concat`](#concat), [`empty`](#empty),\nand [`reduce`](#reduce).\n\n```javascript\n> intercalate (', ', [])\n''\n\n> intercalate (', ', ['foo', 'bar', 'baz'])\n'foo, bar, baz'\n\n> intercalate (', ', Nil)\n''\n\n> intercalate (', ', Cons ('foo', Cons ('bar', Cons ('baz', Nil))))\n'foo, bar, baz'\n\n> intercalate ([0, 0, 0], [])\n[]\n\n> intercalate ([0, 0, 0], [[1], [2, 3], [4, 5, 6], [7, 8], [9]])\n[1, 0, 0, 0, 2, 3, 0, 0, 0, 4, 5, 6, 0, 0, 0, 7, 8, 0, 0, 0, 9]\n```\n\n#### <a name=\"foldMap\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L2080\">`foldMap :: (Monoid m, Foldable f) => (TypeRep m, a -⁠> m, f a) -⁠> m`</a>\n\nDeconstructs a foldable by mapping every element to a monoid and\nconcatenating the results.\n\nThis function is derived from [`concat`](#concat), [`empty`](#empty),\nand [`reduce`](#reduce).\n\n```javascript\n> foldMap (String, f => f.name, [Math.sin, Math.cos, Math.tan])\n'sincostan'\n```\n\n#### <a name=\"reverse\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L2098\">`reverse :: (Applicative f, Foldable f, Monoid (f a)) => f a -⁠> f a`</a>\n\nReverses the elements of the given structure.\n\nThis function is derived from [`concat`](#concat), [`empty`](#empty),\n[`of`](#of), and [`reduce`](#reduce).\n\n```javascript\n> reverse ([1, 2, 3])\n[3, 2, 1]\n\n> reverse (Cons (1, Cons (2, Cons (3, Nil))))\nCons (3, Cons (2, Cons (1, Nil)))\n```\n\n#### <a name=\"sort\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L2121\">`sort :: (Ord a, Applicative f, Foldable f, Monoid (f a)) => f a -⁠> f a`</a>\n\nPerforms a [stable sort][] of the elements of the given structure,\nusing [`lte`](#lte) for comparisons.\n\nThis function is derived from [`lte`](#lte), [`concat`](#concat),\n[`empty`](#empty), [`of`](#of), and [`reduce`](#reduce).\n\nSee also [`sortBy`](#sortBy).\n\n```javascript\n> sort (['foo', 'bar', 'baz'])\n['bar', 'baz', 'foo']\n\n> sort ([Just (2), Nothing, Just (1)])\n[Nothing, Just (1), Just (2)]\n\n> sort (Cons ('foo', Cons ('bar', Cons ('baz', Nil))))\nCons ('bar', Cons ('baz', Cons ('foo', Nil)))\n```\n\n#### <a name=\"sortBy\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L2145\">`sortBy :: (Ord b, Applicative f, Foldable f, Monoid (f a)) => (a -⁠> b, f a) -⁠> f a`</a>\n\nPerforms a [stable sort][] of the elements of the given structure,\nusing [`lte`](#lte) to compare the values produced by applying the\ngiven function to each element of the structure.\n\nThis function is derived from [`lte`](#lte), [`concat`](#concat),\n[`empty`](#empty), [`of`](#of), and [`reduce`](#reduce).\n\nSee also [`sort`](#sort).\n\n```javascript\n> sortBy (s => s.length, ['red', 'green', 'blue'])\n['red', 'blue', 'green']\n\n> sortBy (s => s.length, ['black', 'white'])\n['black', 'white']\n\n> sortBy (s => s.length, ['white', 'black'])\n['white', 'black']\n\n> sortBy (s => s.length, Cons ('red', Cons ('green', Cons ('blue', Nil))))\nCons ('red', Cons ('blue', Cons ('green', Nil)))\n```\n\n#### <a name=\"traverse\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L2200\">`traverse :: (Applicative f, Traversable t) => (TypeRep f, a -⁠> f b, t a) -⁠> f (t b)`</a>\n\nFunction wrapper for [`fantasy-land/traverse`][].\n\n`fantasy-land/traverse` implementations are provided for the following\nbuilt-in types: Array and Object.\n\nSee also [`sequence`](#sequence).\n\n```javascript\n> traverse (Array, x => x, [[1, 2, 3], [4, 5]])\n[[1, 4], [1, 5], [2, 4], [2, 5], [3, 4], [3, 5]]\n\n> traverse (Identity, x => Identity (x + 1), [1, 2, 3])\nIdentity ([2, 3, 4])\n```\n\n#### <a name=\"sequence\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L2220\">`sequence :: (Applicative f, Traversable t) => (TypeRep f, t (f a)) -⁠> f (t a)`</a>\n\nInverts the given `t (f a)` to produce an `f (t a)`.\n\nThis function is derived from [`traverse`](#traverse).\n\n```javascript\n> sequence (Array, Identity ([1, 2, 3]))\n[Identity (1), Identity (2), Identity (3)]\n\n> sequence (Identity, [Identity (1), Identity (2), Identity (3)])\nIdentity ([1, 2, 3])\n```\n\n#### <a name=\"extend\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L2237\">`extend :: Extend w => (w a -⁠> b, w a) -⁠> w b`</a>\n\nFunction wrapper for [`fantasy-land/extend`][].\n\n`fantasy-land/extend` implementations are provided for the following\nbuilt-in types: Array and Function.\n\n```javascript\n> extend (ss => ss.join (''), ['x', 'y', 'z'])\n['xyz', 'yz', 'z']\n\n> extend (f => f ([3, 4]), reverse) ([1, 2])\n[4, 3, 2, 1]\n```\n\n#### <a name=\"duplicate\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L2255\">`duplicate :: Extend w => w a -⁠> w (w a)`</a>\n\nAdds one level of nesting to a comonadic structure.\n\nThis function is derived from [`extend`](#extend).\n\n```javascript\n> duplicate (Identity (1))\nIdentity (Identity (1))\n\n> duplicate ([1])\n[[1]]\n\n> duplicate ([1, 2, 3])\n[[1, 2, 3], [2, 3], [3]]\n\n> duplicate (reverse) ([1, 2]) ([3, 4])\n[4, 3, 2, 1]\n```\n\n#### <a name=\"extract\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L2278\">`extract :: Comonad w => w a -⁠> a`</a>\n\nFunction wrapper for [`fantasy-land/extract`][].\n\n```javascript\n> extract (Identity (42))\n42\n```\n\n#### <a name=\"contramap\" href=\"https://github.com/sanctuary-js/sanctuary-type-classes/blob/v12.1.0/index.js#L2290\">`contramap :: Contravariant f => (b -⁠> a, f a) -⁠> f b`</a>\n\nFunction wrapper for [`fantasy-land/contramap`][].\n\n`fantasy-land/contramap` implementations are provided for the following\nbuilt-in types: Function.\n\n```javascript\n> contramap (s => s.length, Math.sqrt) ('Sanctuary')\n3\n```\n\n[Alt]:                      https://github.com/fantasyland/fantasy-land/tree/v4.0.1#alt\n[Alternative]:              https://github.com/fantasyland/fantasy-land/tree/v4.0.1#alternative\n[Applicative]:              https://github.com/fantasyland/fantasy-land/tree/v4.0.1#applicative\n[Apply]:                    https://github.com/fantasyland/fantasy-land/tree/v4.0.1#apply\n[Bifunctor]:                https://github.com/fantasyland/fantasy-land/tree/v4.0.1#bifunctor\n[Category]:                 https://github.com/fantasyland/fantasy-land/tree/v4.0.1#category\n[Chain]:                    https://github.com/fantasyland/fantasy-land/tree/v4.0.1#chain\n[ChainRec]:                 https://github.com/fantasyland/fantasy-land/tree/v4.0.1#chainrec\n[Comonad]:                  https://github.com/fantasyland/fantasy-land/tree/v4.0.1#comonad\n[Contravariant]:            https://github.com/fantasyland/fantasy-land/tree/v4.0.1#contravariant\n[Extend]:                   https://github.com/fantasyland/fantasy-land/tree/v4.0.1#extend\n[FL]:                       https://github.com/fantasyland/fantasy-land/tree/v4.0.1\n[Filterable]:               https://github.com/fantasyland/fantasy-land/tree/v4.0.1#filterable\n[Foldable]:                 https://github.com/fantasyland/fantasy-land/tree/v4.0.1#foldable\n[Functor]:                  https://github.com/fantasyland/fantasy-land/tree/v4.0.1#functor\n[Group]:                    https://github.com/fantasyland/fantasy-land/tree/v4.0.1#group\n[Monad]:                    https://github.com/fantasyland/fantasy-land/tree/v4.0.1#monad\n[Monoid]:                   https://github.com/fantasyland/fantasy-land/tree/v4.0.1#monoid\n[Ord]:                      https://github.com/fantasyland/fantasy-land/tree/v4.0.1#ord\n[Plus]:                     https://github.com/fantasyland/fantasy-land/tree/v4.0.1#plus\n[Profunctor]:               https://github.com/fantasyland/fantasy-land/tree/v4.0.1#profunctor\n[Semigroup]:                https://github.com/fantasyland/fantasy-land/tree/v4.0.1#semigroup\n[Semigroupoid]:             https://github.com/fantasyland/fantasy-land/tree/v4.0.1#semigroupoid\n[Setoid]:                   https://github.com/fantasyland/fantasy-land/tree/v4.0.1#setoid\n[Traversable]:              https://github.com/fantasyland/fantasy-land/tree/v4.0.1#traversable\n[`fantasy-land/alt`]:       https://github.com/fantasyland/fantasy-land/tree/v4.0.1#alt-method\n[`fantasy-land/ap`]:        https://github.com/fantasyland/fantasy-land/tree/v4.0.1#ap-method\n[`fantasy-land/bimap`]:     https://github.com/fantasyland/fantasy-land/tree/v4.0.1#bimap-method\n[`fantasy-land/chain`]:     https://github.com/fantasyland/fantasy-land/tree/v4.0.1#chain-method\n[`fantasy-land/chainRec`]:  https://github.com/fantasyland/fantasy-land/tree/v4.0.1#chainrec-method\n[`fantasy-land/compose`]:   https://github.com/fantasyland/fantasy-land/tree/v4.0.1#compose-method\n[`fantasy-land/concat`]:    https://github.com/fantasyland/fantasy-land/tree/v4.0.1#concat-method\n[`fantasy-land/contramap`]: https://github.com/fantasyland/fantasy-land/tree/v4.0.1#contramap-method\n[`fantasy-land/empty`]:     https://github.com/fantasyland/fantasy-land/tree/v4.0.1#empty-method\n[`fantasy-land/equals`]:    https://github.com/fantasyland/fantasy-land/tree/v4.0.1#equals-method\n[`fantasy-land/extend`]:    https://github.com/fantasyland/fantasy-land/tree/v4.0.1#extend-method\n[`fantasy-land/extract`]:   https://github.com/fantasyland/fantasy-land/tree/v4.0.1#extract-method\n[`fantasy-land/filter`]:    https://github.com/fantasyland/fantasy-land/tree/v4.0.1#filter-method\n[`fantasy-land/id`]:        https://github.com/fantasyland/fantasy-land/tree/v4.0.1#id-method\n[`fantasy-land/invert`]:    https://github.com/fantasyland/fantasy-land/tree/v4.0.1#invert-method\n[`fantasy-land/lte`]:       https://github.com/fantasyland/fantasy-land/tree/v4.0.1#lte-method\n[`fantasy-land/map`]:       https://github.com/fantasyland/fantasy-land/tree/v4.0.1#map-method\n[`fantasy-land/of`]:        https://github.com/fantasyland/fantasy-land/tree/v4.0.1#of-method\n[`fantasy-land/promap`]:    https://github.com/fantasyland/fantasy-land/tree/v4.0.1#promap-method\n[`fantasy-land/reduce`]:    https://github.com/fantasyland/fantasy-land/tree/v4.0.1#reduce-method\n[`fantasy-land/traverse`]:  https://github.com/fantasyland/fantasy-land/tree/v4.0.1#traverse-method\n[`fantasy-land/zero`]:      https://github.com/fantasyland/fantasy-land/tree/v4.0.1#zero-method\n[stable sort]:              https://en.wikipedia.org/wiki/Sorting_algorithm#Stability\n[type-classes]:             https://github.com/sanctuary-js/sanctuary-def#type-classes\n","_attachments":{},"homepage":"https://github.com/sanctuary-js/sanctuary-type-classes#readme","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-type-classes/issues"},"license":"MIT"}