{"_id":"@arrows/multimethod","_rev":"41-d7fa2105944a7b12b0086374741111b7","name":"@arrows/multimethod","dist-tags":{"latest":"2.1.0"},"versions":{"0.1.0":{"name":"@arrows/multimethod","version":"0.1.0","main":"lib/index.js","license":"ISC","scripts":{"build":"tsc","test":"jest","prepublish":"yarn build"},"devDependencies":{"@types/jest":"^24.0.18","jest":"^24.9.0","ts-jest":"^24.1.0","typescript":"^3.6.3"},"dependencies":{"@arrows/composition":"^0.1.0","deep-strict-equal":"^0.2.0"},"_id":"@arrows/multimethod@0.1.0","_nodeVersion":"10.16.0","_npmVersion":"6.10.1","dist":{"integrity":"sha512-6QECGTC5MMe/JtpicKMvZKx8mO9rKW0KHuFgCDN9B5Uzr2jRSECHjNsFZTq/Qi8PZqSKCRCdguczs+GjJSEVKA==","shasum":"dfe9f4fc2e10003405f7baba4ffa9e1fe15a4796","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-0.1.0.tgz","fileCount":11,"unpackedSize":17551,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdgDGPCRA9TVsSAnZWagAAiekP/3P2akxNYglGIUZvfuHt\nnmcsfkxi112eecQJQY+mztDXOoiG6hXO+LCBPCx7onW1aczQvgQfkGPq3coR\nbKS57GJSznLlt6iAN5uj4/fHbtE3M2nx93osYtt7rJcNF/exuqX4wQILHrtu\nCyGt6lmoUwd3oMRXa92K0UaEmj6/b3xTZ3drMiwe+yhC30qpoBnEPqEPtjzT\ngegIhpzISi0G0QHotltRNw9TrcW/pm9mIhYK5E4wWTngjwVZHgn5txi0Ym91\nK56UzuEWj3bETZOJt62+SutjQkJo4rpdaFh4ta9Va0dblYFHIxhN7kwWaeq7\nqzAKmmJAR8MmVVqER8rmuKvczGRzQ0TUifMPhL2s0C4fXJDJnemTApuVwXpr\nIlcksRNf1hLuw/lziRNP6h7Yr9qy1WA/H79e+nVd+Mh97nhWcX9Tf3VxQ8wg\n+j0ffDg2oUCmZ8BWrJixBVvmppmDFUa1vJVjnBR9AOFVFVf8kebdBRhASIFH\nerqjJig6RQ3I8jJCfN++WKkyD2FVgyE2KTNGAXBAYCFveswfBx8eElOWVmOd\nM66d5s7VxU+nxeJU04XjkXgq30ycpgRq0jI6rNFChJ4bOmgQntWGSvRjAuSe\nNREFNZvJ+cYiImS1Z09IODWRghSSBI5YgIDVS+WITVCM0+6jxQlmCIQX9x7S\n9XkW\r\n=GVeS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD5cwZxpwgtUBcxXMIzAYInN5fE/KcJQ7TYfcNMBnsLiwIhANiwJBXBsAqer24HbjvcYUzz9pvy4/LJJVVPwotpiHPT"}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_0.1.0_1568682383050_0.08317563667686367"},"_hasShrinkwrap":false},"0.2.0":{"name":"@arrows/multimethod","version":"0.2.0","main":"lib/index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://github.com/caderek/arrows/tree/master/packages/multimethod","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multiple dispatch"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prepublish":"yarn build"},"devDependencies":{"@types/jest":"^24.0.18","jest":"^24.9.0","ramda.curry":"^0.26.1","ts-jest":"^24.1.0","typescript":"^3.6.3"},"dependencies":{"@arrows/composition":"^0.1.0","deep-strict-equal":"^0.2.0"},"_id":"@arrows/multimethod@0.2.0","_nodeVersion":"10.16.0","_npmVersion":"6.10.1","dist":{"integrity":"sha512-RrpXINIL1/XSNVsTjxmS6AHo21QuojTSPB8aEsB9Z4jQnbnnGT08enJo3M72H4aaYvQ0w4ur2CjVPus9M5JSYw==","shasum":"631d37a455c12872d704213d56ddf9442ee42313","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-0.2.0.tgz","fileCount":13,"unpackedSize":19677,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdhCN2CRA9TVsSAnZWagAA8NAP/0C442jPcyAiRlU4Kd+i\n4xUPGXeGAw7ZcyrTbumFjBB5KlZMHHiRbZL6kBHM8D15fVA7hd2VhdWnH6ZB\nHKQI48eBHxlCzXBCFkUsHUWczkXcBLiK+LxZt/DO2SGV/AmA5g5XuqiPpYTB\nudS5fvY7oSJ3FPUH5WAbzIGJfc6iwL9jhBn+R0sAvXsiehxnZSnHRN/rEa5h\nvH4Lcse+U9edloEcnHvjyaQ6G1rk3+//HJCDgkraf9pMX7Wraoa8ohZWFoLq\nZ3TyDL5EQaRmfoJAERHvo4KnQnVOJk/vGgCUHCUo2CQbvywD7Xmzjwe9IE0f\nq+KlRJ7U0SmQ0E9b7RruVLzOoVPi4gjm3inwWQexfyFjaONHGrAcbqCCJj6v\nTIqPAzyQrQ9oRAKdIYru+rn31Zh9pRIuvfx/0GyaRDEUo0PLXz8PzgqqS1CD\nfr6jIEJUUC4zBGWYWc674wZY+HEEbeNU69wkl5o4wBkpmGkexKKi4qNHnolk\nd3k9qJQyUSKrmH0NTY+40F6CuJXQLIRA/R4C9+NvTnmD6Qp/Sahq7IoXUnCF\nq7P4hsWowCExD+VI34fM2Y0FBoUXkHWp/AqyhJYY3faZNeI0HWEEv7Ahl410\n9EbDocYbuuvbAR6k4VtQiArnVPTptO2L8my9TbH5ZaRXsa2Msoy05U6QA/wa\noX2A\r\n=PyMB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFyE1ol9QsK0Ddm7N9nXvYdKhTFpw4dBX35lTfPCn67tAiAFxhVT10vXyhuR9OG08QBwWCxpRCKvpiWjGOpZNy2zYg=="}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_0.2.0_1568940917766_0.15201678456835221"},"_hasShrinkwrap":false},"0.3.0":{"name":"@arrows/multimethod","version":"0.3.0","main":"lib/index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://github.com/caderek/arrows/tree/master/packages/multimethod","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multiple dispatch","dynamic dispatch","polymorphic","function"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","coverage":"jest --coverage && codecov -F multimethod","prepublish":"yarn build"},"devDependencies":{"@types/jest":"^24.0.18","codecov":"^3.6.0","jest":"^24.9.0","ramda.curry":"^0.26.1","ts-jest":"^24.1.0","typescript":"^3.6.3"},"dependencies":{"@arrows/composition":"^0.1.0","deep-strict-equal":"^0.2.0"},"_id":"@arrows/multimethod@0.3.0","_nodeVersion":"10.16.0","_npmVersion":"6.10.1","dist":{"integrity":"sha512-IbB8bid9vht755KmM9uURkK7rILWTXGZvhpfv0i+18Wi3qO4/2NjHdF1TwqjHfhIxBQdMvbwvjwWFUtI5nhGsg==","shasum":"631f0add27f6c1c866e860852a2a6072a4a8af38","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-0.3.0.tgz","fileCount":12,"unpackedSize":25188,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdhY9nCRA9TVsSAnZWagAAdQIQAJN0jOqsZA0tBwfbDElx\nyQc92C8NsVllisFlYzEIPRtjYLI+wZQrGT+kTO+J2+srYO87pfsRPs3k4dk5\nSQAon1DX5p14LnlmbC/XYkU+/r0OyXGS/jPudp+HjEnYhOje6KSdGm3ADr4q\nXM7UfGv+WgHmIP3SGaNMI3xLTe2uOo8Xb0D52oVNYtJy6oBHFkm6u29ZKS1r\nVxns8+A+jaVeaWJY3D+/HFD8WbcwXeijMrqrRRqdIURf9ZnZnGLJTigYv7S6\nIn65qnt8stFmeoINf85RHuSZ0epsttR0HN1Plbm+ZmnZgGX2QhGQb5oIt4WK\ntG7TTXM3gSaBxr8Q3TxduJqL1C35LFYOMAMkE1hRhsz0zvFlcsSVzjGOjWFW\n7QvFQGycfNjswKBvEWID7HlewfeC6bPLXN9h27qMti282xb8UJEAepiTrvge\nCTI3zIs7RDYhPsxjWEpzw0UOHsdJnSo+L/c7dKTv0QPiOXzSH69QUlrcDtYs\nS41DvT8tOT/AO4USFUQX9WLfw9dQEQqYGJ1uL866z1BQKE3YwcD3xRUKrJ5B\n84eN1iaWMOdblZ+5CkE6JSCDDKvskAY1b09TOgukmJ3mJpQIWY89lr8MTtKb\nss7PRU4KiLXdcM0PdqsofuXdMJnH6d/+sRiwi4ncWiKdOmy72Go+dPuxXqjs\nPM8B\r\n=2+av\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFfW0eQwg7y7OiyaiSOjXZu7KbUV5TnUBDyKWB1eDJ6/AiEAjMltiupNVuQbiM0RTfdv9c6MP3ILz7e878YadtwtG7Q="}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_0.3.0_1569034087425_0.5303709565209147"},"_hasShrinkwrap":false},"0.3.1":{"name":"@arrows/multimethod","version":"0.3.1","main":"lib/index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://github.com/caderek/arrows/tree/master/packages/multimethod","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","coverage":"jest --coverage && codecov -F multimethod","prepublish":"yarn build"},"devDependencies":{"@types/jest":"^24.0.18","codecov":"^3.6.0","jest":"^24.9.0","ramda.curry":"^0.26.1","ts-jest":"^24.1.0","typescript":"^3.6.3"},"dependencies":{"@arrows/composition":"^0.2.0","deep-strict-equal":"^0.2.0"},"_id":"@arrows/multimethod@0.3.1","_nodeVersion":"10.16.0","_npmVersion":"6.10.1","dist":{"integrity":"sha512-UcJN7pZKHuETzQYBCoDMilrfTxhoo/qYHuqrAx/Nmg0uGwrB41rJypfPnOeoX6safigpngqPMMO1mDLDurCh1w==","shasum":"710f1269fa4d92664d758c63459f8607ea37c62f","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-0.3.1.tgz","fileCount":12,"unpackedSize":25220,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdhZNMCRA9TVsSAnZWagAAv9IP/0eJJXZb3Jh5KkjoIjYn\nyEl67TeuZ5ybAFpki1QDCoKFqh8XbBmZtIif737QuppW4oTpEpiZb3IrDdgJ\nxyhKB9Jc21ucykcFPDh2EUUZlgjO2DPUDpWskV6WPQw5ruTmD9sGPpiTuGtU\nyjZwzadhX0rXMTbb4wOixFbGqF1fgPjQeQcocLnDckGpDMDaPLEGAHAOM+fm\nbIcibGfKuNJtVgG8Q8TuqTuXJcaLk4LFML+mKGUjfkrcYB/s/QyqURlwzbDR\nmLRWp7q+mB5VIWFhwRv4pbNd9hNbaRM4OgpHMLHKE2fa4dwDBXz6bCSCvUxB\nqoNDFNy7xBZprPUg0lRN/m/8rbBmD70kTPxJrLWDFLjK8II9n1z3TdJdQ+zG\n/psoEUMdFHrdO4Rx1oPqQtxImmYQootvQm05ms5LqO13oQKWtJfSgnNzUoB5\n7JaHEr90/1KU8qUmekRf1QoR7yZ2stx0BD09d1KK9porneWfzU6NYbVJ0xbE\n4o8mGP48nHW8awlpiR18rbHwRPmVoizp5C99qa9eYIeR2GwHu4aZF2fxAk5Q\nCAjGcbmm8q07s2ONka1K4Zkhxh5i/maDxG7bo6Eo8pa7HN5kblg+tjB2Arlg\n4McmPjPzdjojMhxq+Bxu4EVtNPA/8q2Etc37yFfrTwN2QnrYtEPgR9lw4bho\n5D6l\r\n=IGWb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDqhNG7Hwa4X0hdAuHImCrrOtIGVco3bm9ONiSYoVGYdAiEA2C2XSyqrukJqjsgQ1MvGzHW8rUQqObdtcIf7Qxdun7Y="}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_0.3.1_1569035084174_0.6162996880448859"},"_hasShrinkwrap":false},"0.3.2":{"name":"@arrows/multimethod","version":"0.3.2","main":"lib/index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://github.com/caderek/arrows/tree/master/packages/multimethod","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","coverage":"jest --coverage && codecov -F multimethod","prepublish":"yarn build"},"devDependencies":{"@types/jest":"^24.0.18","codecov":"^3.6.1","jest":"^24.9.0","ramda.curry":"^0.26.1","ts-jest":"^24.1.0","typescript":"^3.6.3"},"dependencies":{"@arrows/composition":"^0.2.1","deep-strict-equal":"^0.2.0"},"_id":"@arrows/multimethod@0.3.2","_nodeVersion":"10.16.0","_npmVersion":"6.10.1","dist":{"integrity":"sha512-tncAPnSrO2XYesQNp76lrC+nB6rwvvYrHXnb/0o/JdOnyF85XRYlWAjhL450DJqBpJtnyD8hYygWaQMTZO1XgA==","shasum":"b3ce3cfb1602e3bf264fb22a5dac9b72563d4ac4","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-0.3.2.tgz","fileCount":12,"unpackedSize":25389,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdhZuTCRA9TVsSAnZWagAA+WYP/0MG7guAyVuRYTpACFcx\nxnkQpxcI1lKz2vlaBqKZeyj0W+eZPezNsT6Dk08fWXaMMDdRjU0WcZo8Q9zn\nAdfe0qAhDnEUXca35nWUdyzyuX0LX23Dn0bXgpsjqBxQOWwT/zhY8OFrUWH+\nEHo9vNECDvwmzF0+BHj7gvPEH6CgHChJ5+lH0hw5SMOsxV6hsQbZ0UOhNH4j\nDMZAMtfKom4a2h9xoINLKyufsonqzdrwNWx/++4Na9QreI3OJIm6GQJHYPbN\nSNUlXc/pdk9DJo1b0rV8gSIovLNUXMCdvhahwNCxJMWCFh8l0gWwUHMn+LTb\n3wRTgxFZPHsH27n/M7eLhyNUjmbncgeDNtLA3S26dF5LMWw3d4rAcbvanb19\nid7j8dwiEqOjz1zR+kE6eyIaiD9YQW0bM7nkCgtJ7RzQP21VLFoAi7ucUfKg\nS6NRY2lbH4GwQrVhln+MgIRfG3AnKzmpLCU+blmPXxN5We2mSGyPtIdBFoSu\nHp9x6GLotqBgCEcqqevXfcWQ1wWGezm+Gh/0EiHd075k81XuHumrm77auYio\nWbWozGxTqiSN6EohPtWmq2QbkOsqM7e5oM1tNN1Wwy4qK7CbtFTadC79w2/Q\nYDXPDLYzClGaxofqJ1mQZo5jp1heP6ug5jLAS8xROnD4H4Bx7R2ZwNDhX4aE\ni6cH\r\n=RUHd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJ134p72EzgNKjps76Ylgo16kD2/tNLbnjf4XsIKeCJQIhAMFl+js77tGCQ8W43MhRmndqWYqa1A/OB39Veyqk1R5B"}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_0.3.2_1569037203365_0.7820554280522762"},"_hasShrinkwrap":false},"0.3.3":{"name":"@arrows/multimethod","version":"0.3.3","main":"lib/index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://github.com/caderek/arrows/tree/master/packages/multimethod","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","coverage":"jest --coverage && codecov -F multimethod","prepublish":"yarn build"},"devDependencies":{"@types/jest":"^24.0.18","codecov":"^3.6.1","jest":"^24.9.0","ramda.curry":"^0.26.1","ts-jest":"^24.1.0","typescript":"^3.6.3"},"dependencies":{"@arrows/composition":"^0.2.2","deep-strict-equal":"^0.2.0"},"_id":"@arrows/multimethod@0.3.3","_nodeVersion":"10.16.0","_npmVersion":"6.10.1","dist":{"integrity":"sha512-7fTAKTPVuMcDL3tLfbgltg+VP/EsjTENysUcEdBumzXbCmo1nerZcfnNp0ra4P+oi1Ai80vg2P5rZbHMO6N6RQ==","shasum":"172a564c2adf4cf6fa5cb7ebb4e5c1bc6a1aaef0","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-0.3.3.tgz","fileCount":12,"unpackedSize":25389,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdhlpsCRA9TVsSAnZWagAANFMP/3GG9q2o37awg14pIEPA\nD68KQlixj5VBIIWaqVuAomr/G6FX7B2s5R3VeV1CXZ9djpjxOn9jiTvuyAQk\nq4moDxWAMysOkX/OolSVAJp068z6LfXYQaEPa/NabWh83CbvIgb4cFXyzXcl\nfW9GyJh1XdlsgQQBVoLCMtpr9YPf8kZP4BEzh7iDeHhPvy+K50+p2xhiBY9M\njtVURAM4mtJidByhQbpaO9/vY8W5naeShGh32FB7VHe9kpWcWnyZSXnfkSYG\nVI0ljwi0OBevCH0weXPC4rXbjtiUsrKIwzwYeRX/srZ0zDc5Xhp7pPGWY+NA\nc4Zqc/BEt2u+4i8ug7JRE9VABqq7LZJyWqgBDTnuTFi4dX9oABa3uQ7Cf8sn\nF5BxlsAyL2cr4OHqxNQG/05dattFNqafHK6ngCRlbY1zuqvXnrhek/I5xtON\nRQssWlXl3d9lu+5wEgTBNP1KQ+O/apNn2lwg/uVWWZgbkZPEL62D4PsCV5kb\nMJFDe0zrsdFPfJVEh6Wm6J9oyZk/0A62c5JhuPaFc3ihbYVQdpjNwfk7CRai\nPaTR/weJuMzJJGqIy1i0o7Y7qxk3CRprGZFC4s7AK+J0zJH4oZtXRuPr/6Ys\nReN/qFfhdcP3bqUhE9dDQEqDLFGxUA4icW2NA/PangQfXW45xguwmX0p+7Ic\n1m0T\r\n=d4T8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEzQ5uM4QumpQCbEByIv3360ypCaC9uqrRv5wKUJDXsAAiAWDrzs1Y/iNuARzVf66aPOImpOU3Lgq7ICzt8+UotAWQ=="}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_0.3.3_1569086060212_0.8191288702287396"},"_hasShrinkwrap":false},"0.3.4":{"name":"@arrows/multimethod","version":"0.3.4","main":"lib/index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://github.com/caderek/arrows/tree/master/packages/multimethod","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","coverage":"jest --coverage && codecov -F multimethod","prepublish":"yarn build"},"devDependencies":{"@types/jest":"^24.0.18","codecov":"^3.6.1","jest":"^24.9.0","ramda.curry":"^0.26.1","ts-jest":"^24.1.0","typescript":"^3.6.3"},"dependencies":{"@arrows/composition":"^0.2.4","deep-strict-equal":"^0.2.0"},"_id":"@arrows/multimethod@0.3.4","_nodeVersion":"10.16.0","_npmVersion":"6.10.1","dist":{"integrity":"sha512-UXv3A6QaUqLk7CpcXYW1CscvXMcZuUjWebZI21frWBxo4s4hDCpZ8g3ZFkhPZjFWAg4oXo7BhDl28ttDcjQ2Rw==","shasum":"4f733e6323450ea604ee008b89b7432d5ffb65c0","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-0.3.4.tgz","fileCount":12,"unpackedSize":25413,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdhmbACRA9TVsSAnZWagAAQJcP/iyxGKmMZOD6i2QXjBAW\nSQG6PfJqI+VYQV2tYQNKoqQXR1IisMIPPv9bvHTgIpn1nprpV+mKm8ydwp79\nzWGdOM2PM/aEcZlxz9WxcH1Hd3SdNxKJXb2N4AlCP/1eh/WKF1pc0XJEanWP\nS7UHRJYgAaTA8fMohfJSxCH5xB1gQLsIe0giqk6qDbK4opV1WHUo4OEJnN4E\n1QGHStkVnIujf56uJRdD4A6NYY26XmBc1R5g3HVs5jb1JFhba93IsdLFLubL\nfJOzhLZyOFubUatbG3SwKqBdk7nRX6FLr5VUit3B5bQtuP2fer9TVMFet7+C\ncHQLgG17cvK1PEf4XGesZD87c3InqhJ3Zm0REL3caz4gSfnDl+6pI9AgpSKI\nFbIBhJn+zGX3mCguiXmK+tccT7KIN7OL+GMCBzE66H3/kM3nChhorDLJ70bH\n1Xhb1FSlGUdvagDtoHui5VVF3/PsvYRUhT1x/LvlaikXW2PfV70XMGhDPjXZ\nT6ZNKnPFuUVzRDKQI+6jH6Zrg8ofD+1v2bG+lEm3w4UY7J/dnCi1K8jK5vGk\nkbSXF726xgz8ZmyxxYUSrCo/XCID0+jl/Tzu0ipJ1TTchCTwgxjpd0TRFOq7\nPiaNMYvETwk/pIayBYRoXsJZfM9pJLTA4BBbvpg9dqAzkCYUh7R56DDfTu4C\ncBE1\r\n=DFww\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCX51BFZmYsiBeIZqL9RDUj+YwpWLrezRzSHEq/kwGbKwIhAIPbn6mseoKfXtcn7fwr1//+4a/MFVG4kQjiHzxwK7md"}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_0.3.4_1569089215922_0.2287843988434055"},"_hasShrinkwrap":false},"0.3.5":{"name":"@arrows/multimethod","version":"0.3.5","main":"lib/index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://github.com/caderek/arrows/tree/master/packages/multimethod","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod"},"devDependencies":{"@types/jest":"^24.0.18","codecov":"^3.6.1","jest":"^24.9.0","ramda.curry":"^0.26.1","ts-jest":"^24.1.0","typescript":"^3.6.3"},"dependencies":{"@arrows/composition":"^0.2.5","deep-strict-equal":"^0.2.0"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@0.3.5","dist":{"shasum":"d7cc57602471e7f127aabd599cdf5310b0667e8f","integrity":"sha512-JMTyCm7qInta18HkKkCzAoyC1b05diFbZN/JTgV5Vp4SQsKuPNvqhKj8M/SmVTzM8BWw9WrlEndtYo2qlhYHow==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-0.3.5.tgz","fileCount":14,"unpackedSize":25430,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdhtnNCRA9TVsSAnZWagAAfpkQAJXrUE+geoZnqjP12hYI\nfblTvrGykN/GuGYyFw9mFeTCDaeT8MKwmEHUouhvWPPolJCVanIJjxgtx4yq\n2HcTAT/uE/pmebbxwTXvP8NZiFUrwgR1PcKZJCHXw3e5OCEqzdOf8C+2p4so\nAFg9UnqUxsPQcOhl0jIRiOvLlmzIn8CDugfogtQxJOl5cdbeDLpoodV8RGck\n13lnx1q5hIPsGZtV+JT0eWnjucDJQI2l1CcoGYR5bUTmiI6ZQAYf7jZFP1Ej\nho1kQjq6YrlArKN0B8/IgY9GSGrXAhf+dIz3ncVJMrTKOycWPopBxn54pL48\n3hubnCVmByP2GOKOCoemz1Q/QGWjo4LpO15dEEmgHa2NsCeXEq5UGd2Yo9uI\n2rYC3zQhLdj1KrNu55s8N7KwUH8bFhLe9/r2pS0bjaMH5XMuhNCcG4H4Gu9F\nCfs0LB5e54Knrpf1QvFvbZ2DNhPq14kh5V8F7TGEguHFuMFcfCHpm7ZVxvaa\nWYji0JU7inavUk0TAqvqo6xV3MIP2oi2bCP3O3K/R9t2oQ0TTnRU56ikgCL1\nqJgL30jQxnL5hgOOFxad3fFgZ87ggBlIq9a3ovVLealxlHQZqUDQk20sshMX\n3C0oUyf8I+E93hsbSCdg912++DeTWI8EE7jKonvRpYFJLntRGVoZWLuf3Z5R\nDm9O\r\n=yUNW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC+JpXAJrhXHzY9C5/pmfd+jD5qZLaADpyFyTZkycgp8QIhANaRxCqD5Cqt2pPwFd2Ps7Ohp7IoPfrJSrwCOMY3ww+d"}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_0.3.5_1569118669142_0.7083035005798348"},"_hasShrinkwrap":false},"0.3.6":{"name":"@arrows/multimethod","version":"0.3.6","main":"lib/index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://github.com/caderek/arrows/tree/master/packages/multimethod","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod"},"devDependencies":{"@types/jest":"^24.0.18","codecov":"^3.6.1","jest":"^24.9.0","ramda.curry":"^0.26.1","ts-jest":"^24.1.0","typescript":"^3.6.3"},"dependencies":{"@arrows/composition":"^0.2.5","deep-strict-equal":"^0.2.0"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@0.3.6","dist":{"shasum":"fb3cfc4dd6843df806a53c2d60d5ea19d9cae6e4","integrity":"sha512-T8ItO3Vbz5RRCfkqrOvEntSiAjwrjdLnsV4L8DWoeE8XYElGxt/wM4E3zBGOLW0M25nWrxZjWeXRsQJzeX/3eQ==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-0.3.6.tgz","fileCount":28,"unpackedSize":26684,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdhuUNCRA9TVsSAnZWagAA8ScP/RY8dyWY1mOa8qBYahES\n88ZyNfJjEH8TsSV5bF9I+u7dBHSxhdrFBeZT4DWTAhaoKQfAaiR7E9RbokAd\nQrClqPKAp+E87qMAibV3LcqaTZbsJgneqQWpNO5SOKB15nyjaqnXh179icz1\nNjeLX77XF7SY9DC5VY5/W+Q8Jchti4LABr0vQCdAUCkpbmxafdLMAiJsGlDr\nwTwiflspa7B9dsm9i5n3j3BpS3/z1WURJSGoIfojqUrr9iODMuRPLHwPcX2V\n41ss/xoyZfuvle184LKIFwQAU8SC3N1wPlLBH9WEhpI+tcCIVT07kVxC6U8T\nkQ8HVAHzXxxJyH8FQhI6Fk7+6cJ/2Mz1pVrfuU+ti3XCh9MJpabCRUUCHA9a\nKS1a2h4mEB4h1aYUMy7h7NsRdHlOGN1Lg6RL1K0MJTPAEz6heiyaG0BSVYS1\nSGorMNq8dnUe0B3FGt2KPUJK359v/uvCeIyyuX4UitE5zLGvom71tYXAxWdD\n8xvvLBwikLOlhv4y/AVX8C5/mM9gC+1uPK/ehXjuOwTMvFmnTcfAyBRhnboN\nVIrVhSpmM+KTKo5kaedf0Mix8Iay52OAOCQknFwQfCuSqohgbG6AXbzOYbfm\nPTsdW9JPJZepZMtQTytMMWxlB8kcSIvFTd9S+nbwoeiETWsjMS4qjtogkgtr\n/IMP\r\n=g9Mx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFYjbNhLp4AINFxbcz4VrBmeVbUISOixEuEWA+o0aNVMAiAImcUzY2fnLOlBwlZCE6h0kZY4ZMpV78lb/vMHAHBkrg=="}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_0.3.6_1569121548973_0.23532367485392647"},"_hasShrinkwrap":false},"0.3.7":{"name":"@arrows/multimethod","version":"0.3.7","main":"lib/index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://github.com/caderek/arrows/tree/master/packages/multimethod","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod"},"devDependencies":{"@types/jest":"^24.0.18","codecov":"^3.6.1","jest":"^24.9.0","ramda.curry":"^0.26.1","ts-jest":"^24.1.0","typescript":"^3.6.3"},"dependencies":{"@arrows/composition":"^0.2.5","fast-deep-equal":"^2.0.1"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@0.3.7","dist":{"shasum":"a9c1b2a548b80fc4b5b7261570fa4c133ca81b7d","integrity":"sha512-JNwl/zz7dyS/HxwLfvWAs+vmgfkf1f02U56eUKW/PYMLcUMUu66GmZA2gyLVkEEZy7vHTO/r8fuEIkhb0wjMpQ==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-0.3.7.tgz","fileCount":28,"unpackedSize":26678,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdhunyCRA9TVsSAnZWagAADxoP/ioBVuAlPo+n36IflGzB\nAcLZCIs/vB1Wvzco5qH5V4DD7hkxEHcGylilsGo2PJUcOF+AHHlUuwZT5WKv\noomwUPG4MklYyEqjQW8L/P8pgVIeUVcPEXzN6TW58v+ERUi11OsgI1lP5Q5c\nSs6YKyzPuD9C2UPSCrBk4Dxf7Xmq/r0uHJh3luDOHliq4XP+bu0l1CU0Vw1L\nTVvOSmN5RSAVh3lxkdLRU5kvxEgbelEYP9RwprI13JYlZLogizctDSUoLJgy\n3d7P5PYtqD3GKc4kfoXNSGSbVvBfxXkrVMyH5haD8Rr9v0vrnFX9jPZMI8DR\nI6teJamKGs/Otkxj9z/cRKpGVp95eq2Laf1u8cat8cBtENvqrX4WUnvttsL4\nNCoLx/6WuOWrhY/yCWN0Jhso5h58lEc3RA1EQMIY8Yy+NmI6FDEfBXpV0/I/\nsLDy3NtI/ezLW1pBsiLP8w/aBrDZznCNaqBaflv39Rtnbvjr44zZyorbpr9y\nEO097Op5A3RYcEdNzQgJbNDStoASXrvVc/g/0lEaoGbgkYXGmjiZbfq2Z9CA\nO6XQBL5m4EFwam2YMzgwV8GPNWbT2CtmKXOL5UHTWIYItxmL34V2Y7qQuaZl\nc5nyU/FvpS5s4Od168oPEBlrCnHFnyJvVZ0fVrADRKHv6XwFNlOC+gZ+31w0\n2te7\r\n=mo1P\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBzBmtQ+IWYP2wB2UNP0FDYUHHT6COLRlMHK4iBkf8AwAiEAmkqAM6NHs+Ir0XXlefsGsZ6sWeyj6EgQWGfFo+qN0bw="}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_0.3.7_1569122802130_0.18769381902428162"},"_hasShrinkwrap":false},"0.4.0":{"name":"@arrows/multimethod","version":"0.4.0","main":"lib/index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://github.com/caderek/arrows/tree/master/packages/multimethod","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod"},"devDependencies":{"@types/jest":"^24.0.18","codecov":"^3.6.1","jest":"^24.9.0","ramda.curry":"^0.26.1","ts-jest":"^24.1.0","typescript":"^3.6.3"},"dependencies":{"@arrows/composition":"^0.2.5","fast-deep-equal":"^2.0.1"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@0.4.0","dist":{"shasum":"130de3f13406f29b4c105bb7417d82457fbea36d","integrity":"sha512-yYEuxaGLmi+WYH9pYlXDEA818ANEabYefAXGsVBftioZh/omhGqQ8JF0MiDZVY8RJrNHSwtUKE0rNdrOosjavw==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-0.4.0.tgz","fileCount":28,"unpackedSize":52033,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdiBpuCRA9TVsSAnZWagAAMWUP/2aNAFlX3pLanOFNn5P6\nOuWtUH4U4mmq3NOSNVfCgN4EUuUEA9DL3tcPjMvUpstKHrfY49CIE7Q7IOEQ\n9BJz5nKC8K1hFoFrOdHeVMNEBEDaLeqQcQYMUtQDjT2gYF6ifJ/B1eEIa6Uq\n6iOkUgbq3bdIafFHAMSnQo/36koA3CC7SNsQJRkXRbgVv22bVJ9bntcsWwrW\nqdDI0S7jkLFlNIBto3GwArRQX6HyNOrv3nW8dHrxe6f2Y2Stw87g1f0yDzho\nsQloVWVv3heVDfraI1uHo3/mBNWeyawddIFpxTqyDud6NfY1sq/DUinUW6O3\nvq4AEREKbPX3fc/4j6PfJQEMaGhE6ciD0AihSWp2mQHTwe7yAr7u962KAbvv\nOqE3tiX30pGCntAF/NK1C8nhBNyg2OSj5jt8tV6P+BDH/8qgU14aZ0dSI0Je\nXGpr/ZTqZnsnk6ean6RwfZdVgyxBLC0RVZ2BqfIi+zyg1cYlS5/eZ6Z6VwKt\ntmituNSBpRUunnAPnxZUUQGsnzddJc6ldymGbJkChkApqS83GMPVK2d5uhZf\nVVJgxUD1i6ekn5gekmeYm4tg5pxhQSMKBLDo5qywPqyEc1XAtXG3kLjFPR6u\njiKkgFzmiRZSPu0GZXeVb5OFeJJAG+OLOH3LQHPA3VkUfRGxztfiY0q55D7+\nAMay\r\n=NJiK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQChofOFp5TBCFsv5WFfMxydkNRqjoRz0o5SjE3H8koDNAIgTLAvpVYcvoaY/VyeLBOIWIz3damqBxrMD0a3MJDxl2A="}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_0.4.0_1569200749994_0.09942872099365019"},"_hasShrinkwrap":false},"0.5.0":{"name":"@arrows/multimethod","version":"0.5.0","main":"lib/index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://github.com/caderek/arrows/tree/master/packages/multimethod","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod"},"devDependencies":{"@types/jest":"^24.0.18","codecov":"^3.6.1","jest":"^24.9.0","ramda.curry":"^0.26.1","ts-jest":"^24.1.0","typescript":"^3.6.3"},"dependencies":{"@arrows/composition":"^0.2.5","fast-deep-equal":"^2.0.1"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@0.5.0","dist":{"shasum":"985dcd4ca6731bce9c1a16f2cc6be5b4560ddbd4","integrity":"sha512-ZrWhFt3hIJuxHVkQvvcMX0mA2CjkN9HWuKU0/uOEUiCxKzIOb/LgRizDXBflpNp4WUVWmVYqd+TgksTVfxmfUA==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-0.5.0.tgz","fileCount":28,"unpackedSize":53365,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdiVZtCRA9TVsSAnZWagAA9XYP/3sNpdiR4AMiXGQzB5Yb\nTfeCIIF9y4Id+HO5Bt3ENOjq9zKF60tZ2Wg6AD54Ml7m2b3RnZWXdix3Wu07\nM3q99kn1yNzaW0D+xaVsfevLkQeU0PWkX9+qWT9rVUo/aCeWZYiAGj+H3uuD\n+KhGqIjk94FFedhF4l6uHtx2dbXY/Htn8DG9RANv4437ff6verx6/uovkGsO\nT/GWkqyEvtoUg/xH7fgBTlHfIPd8qU3BICQ8G5y8uza8YA3j+RawTE86oeZ5\n7qWw/RJ0qefiWSCADWHdvufCkNWE2pKBhPiz4q3VEk1sw517+HOuTRTIpJir\nEwmeeDzBMCD8CizzUIRyo/ocLjfznW2eQcwXk02FxyyCDXuPyvcv9KB6MYaD\nHjRuZIkGoGg3haJmWACBK0DN5Ytf4xwaOo//xVte38ss4JzdnXc32T76bzdH\nWuu9Jk3ireSovxm8aipOZ/tbkZpSA1I0vsesOscZAMmgURqjtbhBkhAu7LxC\n7vgkf4neIiF/sSiaoKwsqoHAnGBj7rn+BVRyrYn/9dZEyDsFmXyiVEEiiUUE\nKy5/OYU5g+3nXuLPMnREnE8yONsVEirMTBM4Pd0YJZF28uY5fmYR76Ec1w/Z\n3lf5jD+GCr8UFVggp/0mzTkHF7eJOC8NbIN1Lt9cDgcfwl1wmhRvkOk0gQHN\nmRjH\r\n=uWW6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDRgHxYzS29MEWLQlemW3YCBF+vmNl/pI2faWwXm0DK8QIhALfB2smqxpask0qUbthLOM8TAoDQKTjhe9jYrWzbozeg"}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_0.5.0_1569281644739_0.646865476176719"},"_hasShrinkwrap":false},"0.6.0":{"name":"@arrows/multimethod","version":"0.6.0","main":"lib/index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://github.com/caderek/arrows/tree/master/packages/multimethod","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod"},"devDependencies":{"@types/jest":"^24.0.18","codecov":"^3.6.1","jest":"^24.9.0","ramda.curry":"^0.26.1","ts-jest":"^24.1.0","typescript":"^3.6.3"},"dependencies":{"@arrows/array":"^0.4.9","@arrows/composition":"^0.2.5","fast-deep-equal":"^2.0.1"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@0.6.0","dist":{"shasum":"75983e7ecf28faf4e36d39a399d00efbb655d5cf","integrity":"sha512-xAwOojQPF70wsA9NEa8CZwVYDFQ2vmWZCF2gBPfDJJwsl+NG1w1VM1VDIg1xdPndIoFa7x9CUQD/MQwYRIrHUw==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-0.6.0.tgz","fileCount":30,"unpackedSize":52920,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdiqFmCRA9TVsSAnZWagAATMsP/3tq5CE5uMxU/mmNq+fx\nKenIyNgSHrWwBc75VPfQAu4TwOiGxo9nIBarzoPk1lWiCv0Wuu8gcu9bW2hD\ns2wh5ku3AkyhbGNZ/ZaerfcVI3AW4fQeiYmU3qLT0jLrw6kj9kKNY0kW2f3n\nW5yFcEU4d4Crwhv0qfUwvmVL0DAe/k85MtiNQIO6Q/7Vqni03QB/J2NoBKmr\ntyGgEXk4w7jNmdPViHUZRJ4A8FgrA6rT34c+sKRzo4m/Xab8L1ZAnk6ccZPW\nb6pWeAjJc9BZgJsQeySPPV5ZAGeARe/GsJ73rvZGqQ5+qKq0zwrKLVTEp0pe\n9HplYuS/SSBGGtKk2pDK43usqe4Tk7xoasaiaMd7RYVJvzP5FzBl08Xj+NrV\n6nDJUnGwB+WTMfs8mb7VKBxmHaAiMuvVSBErVh/y+2ExXSHLj1DXiM6cMZg5\nykn5EZVNN3aPtaP9R4zRMEqVOhbWEQNVwr+WVQl7OnFEmKlUXidvaWvOVpjC\nd9hjDmkHZRonZygWyyIaCPeCmqqXlk1QJyCI8p6KjrbD5ce7LaZcg/Pfzh7s\nFWQiyTOq8cpW9SURs4V8daJwJLiGRZ+7ZK3lygsCILPBUxVhY19mQm+U1VLF\nbCHEgEQzzVL4G3j16OpfXrIPxAU8mHwyRxEN+ZPFwoo13pkYWwM27jaMtBsT\n4tJE\r\n=Gr3l\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDRnB4u+pSBsRpnIWRx5x3Ljsyh4S8eN+HS8eK4s/re2AiEAiQppRbBckXemIy8IQ1wQnQtCfXaapmJ3wYJZKDDxRZk="}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_0.6.0_1569366374016_0.18212170238319425"},"_hasShrinkwrap":false},"0.6.1":{"name":"@arrows/multimethod","version":"0.6.1","main":"lib/index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://github.com/caderek/arrows/tree/master/packages/multimethod","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod"},"devDependencies":{"@types/jest":"^24.0.18","codecov":"^3.6.1","jest":"^24.9.0","ramda.curry":"^0.26.1","ts-jest":"^24.1.0","typescript":"^3.6.3"},"dependencies":{"@arrows/array":"^0.4.9","@arrows/composition":"^0.2.5","fast-deep-equal":"^2.0.1"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@0.6.1","dist":{"shasum":"2bb51a7da148260d5d5f74cad5d25fa45e38a35e","integrity":"sha512-UJArXaxK9EWHPIU5+n789UPAaDyQaVOvBk0yyHfWuNOg40yctnWxUQ/QHfE0E1UyS2Xp0uKnAOgALRV+91yvCg==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-0.6.1.tgz","fileCount":28,"unpackedSize":52920,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdiqHhCRA9TVsSAnZWagAA2Y0QAIitqGAMkIRW6TAkvbs4\nc5xiVLQM68vcdm0jHgKUiJQm/Abw2+xghIdMsi8TlAJ3RfUszF5WeBqinZ1Y\n4x9tLLmMwVFnUdSPRYQRJAcLTit8nWbYWTJMpCCyyltyfkZB86ZziM+E2Qq8\n3arMhePemeFdJp2SFJKTo4rC/Fj/yKU/ITHNzfwzBMeoaxkSyCRUkPEYfab6\nIVhRwFxVRLqKfYUwf7gepfw31Uqxq6KSochsFX8zV7bxeHGWj3xZnSioJhOH\niU9jmQhbppYQhURIzs9C3evU19qx3WPaQA4izGoiGwbs9IU7OOBNxFLB5Cpp\n1srb/mOgNscOC1gxNK1x38EFVJO3UnqCZANZ3+d24Bhf0Pc6SYvVcrU1xKH1\naSJDwq8RMqI+VjOHeszVoEsN3FzA5M0ZeBap23t9NyfndBF93uOMeDn2H67K\n6sSt8p1vHQaJLyD6vX3wNt4LKd/IpE+auEuW576Xvs+YaHUi59o9+o+4ni/t\ngP6kCg8DX6dF9pEM9St+NjOuWklzTD+CJHvSnszRO9GapIRCJKl8VJZKD0WO\niCd2fe3vcrjSC7TPX97F3KvxLJ487NScQyiIoZGQY33OovnuKGGwoZOOluCa\nTX6RiAE8VUFgU3rkS2RmRlmLK+S+qlyKquvS5r6vOXywBHPqM1bzW2XIhU5K\n3Gph\r\n=u8eT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCHljs/wlhXgWgT9ReujCgfc8q76VkzZdoBNhKtpoKrcgIhALkYfEn47U90K9bXQGOPZOROTErpGB5F45wixRJ7HcB6"}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_0.6.1_1569366496388_0.5119442156134499"},"_hasShrinkwrap":false},"0.6.2":{"name":"@arrows/multimethod","version":"0.6.2","main":"lib/index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://github.com/caderek/arrows/tree/master/packages/multimethod","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod","lint":"tslint -c tslint.json 'src/**/*.ts'"},"devDependencies":{"@types/jest":"^24.0.18","codecov":"^3.6.1","jest":"^24.9.0","ramda.curry":"^0.26.1","ts-jest":"^24.1.0","tslint":"^5.20.0","tslint-config-prettier":"^1.18.0","typescript":"^3.6.3"},"dependencies":{"@arrows/array":"^0.4.9","@arrows/composition":"^0.2.5","fast-deep-equal":"^2.0.1"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@0.6.2","dist":{"shasum":"ba5b04299e7a2a278a911ea724d731aa5bc8c340","integrity":"sha512-VPz8TUWeFjl8VVLjvcigxAhci+Vyx+TmJukNVflp4k6LBnBNQJg4PUFuWCcu4rxTpxkKWA2JydhJYf0gYcvKZg==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-0.6.2.tgz","fileCount":29,"unpackedSize":53330,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdiw0UCRA9TVsSAnZWagAAdXUP/jVj1Hw1CXoTiW4yHAU2\n/JH5Oyeaedb4rKdr52S/5gMJL+vE4y6fuUPR92LW/BoyWyK28kcOH+zwku2m\nrb9luCrssK8kglLLZ88/sr2ugMoJCNqz/TPvH84jIzbZusQfZqZ97IMhU/Qr\n0easDcQkBwhLqlsXfbi71+VJJ9MbMMCaG3XhMCZ6nYrNDjjKWX9Oy5pxghJj\nZ4oyDdg7OkxqZBOV6Gz3U1iN6hw0HFrMXcCJDS85oyRFC1TjJyUQNNkyjr1S\n11ZgbPyS+FL/BVU3/kMKng9BeggHBFCKqGKR39F7WC02puH0sLNBxGq7fsw4\n9zm48TervLKQYRRvMq81WIY9B+kCwj5JI38IDWfMxMJRVYOKbyN5IoAGOiBT\ns1DX/a1PegxxMK1WIzVkC3fADDu1Na9P0oCJ9o8ZSjIV/B6ixr0TEScuWvwe\nRUem+WRh27DZAex2fThyClDk0XZ7aftplaZQ3bHxMXwKDN0RMydi1Lrw7JRO\n70OacuY5Vz7+Kx0YW2kQ8qOhmqyUZwi27WZzP28RirbrEi2/ffwUz6T5aR/5\nU+4epopgmUYKxmIM5xdhNB6hD4J/KK0P3EPwAU1O8A/kHNpxQ9K9GVq6AxnK\nHhOFU8ynt+hvDsj9XTe5U2q1/qP3S9W4x+L2ukZTd/47c0Rf7XOZjMU34YEu\nOW7+\r\n=PgFG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD3hrTtFMZaX/HF3TmBKFyr8ki3snYhzX5PiizYXWA0twIgX5el0Tf7YZOhXCzBMAd4niVN1p1gHR7v8he1ISKefII="}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_0.6.2_1569393939885_0.3267028687218745"},"_hasShrinkwrap":false},"0.6.3":{"name":"@arrows/multimethod","version":"0.6.3","main":"lib/index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://caderek.github.io/arrows","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multi","method","immutable","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod","lint":"tslint -c tslint.json 'src/**/*.ts'","benchmark":"ts-node benchmark"},"devDependencies":{"@types/jest":"^24.0.18","benchmark":"^2.1.4","benny":"^2.0.1","codecov":"^3.6.1","jest":"^24.9.0","ramda.curry":"^0.26.1","ts-jest":"^24.1.0","tslint":"^5.20.0","tslint-config-prettier":"^1.18.0","typescript":"^3.6.3"},"dependencies":{"@arrows/array":"^0.4.9","@arrows/composition":"^0.2.5","fast-deep-equal":"^2.0.1"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@0.6.3","dist":{"shasum":"86f76acff5f4a8a4826b81055fa7a35237d33fb4","integrity":"sha512-AIuQiHhvUpXt9+4oHxR822BpDQy+tkUyazV4s7q5rgo0ZLL5OaOCU7uVf0x9ZBcaJ7vZQ4i63N6DXwTQrOkf+g==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-0.6.3.tgz","fileCount":37,"unpackedSize":62025,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdkB6UCRA9TVsSAnZWagAAem0QAKDAg0B6sBqLgQzHwiql\nsN9XDNZOaKmaUA75BLT6H3BXZNkd11fVOkrySvz81rh3rEcl+QTzrZ3praw0\nCpGEgo2jATeN8iIytDmVkp0bO/m9MWf26++WPfswjgvPhmS/ssNXqM3eS/69\n6jmEPw0OjkWcBYo9qPOTmXoCtvRjo2tNQv5ll4sf4FlY1C7HT187p1viBkZ3\nPdj9x6s7mYC8qyiCC6Jj9HEG9eRwYY2cYimTS67RxCLZWgzRvopknOcU3TQd\nVJ1M58p9KGN1V7A0Z7tWNaRVcaMC9oCeiaYpfk17uk+u4Y0X4DC5z8b2ukbM\nXrgJTDqcboIZEeMk+SnM7tRQmZnsGkoe9/JB1QOIpCwNN+9wCH/hWnvqXj4n\njmRz5tU6q07DxF7UL37VpLfT0NvfBXkZJhnTvxaGAn8KCaKw2woy+fJp1fZh\nUfhan8fznMQsikNRPXabTX4llnqtSljWgoIqKd8RvJrVPitmhUX0LSf4Wjdg\n+w97bVQ5u9ER3iyctq8358dQ6N0TvE+F4woxAxMoDvsqpGTj1Vfpoam6/76a\ngARyZ6U/Fd3hwKjGG6JlIyqF7WA+rhf+IG6kfQTBqSThcbMKle/wZ9wbbzIM\ncWVqb8zIjklmkDR4JGShFp6mNYUA1q7wmDQvPXiCzTCL9nvzoHy9uP31ecQJ\njF4r\r\n=oQdA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAXsfOms71/WnHm/Ew0zbDO1wYXPXKNS9g62gvYLelwyAiEA0a7TrIB/RcTenV3RkbabQCf4P4kV/dvpuJJ26+2fmqg="}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_0.6.3_1569726100016_0.8160395160877321"},"_hasShrinkwrap":false},"0.7.0":{"name":"@arrows/multimethod","version":"0.7.0","main":"lib/index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://caderek.github.io/arrows","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multi","method","immutable","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod","lint":"tslint -c tslint.json 'src/**/*.ts'","benchmark":"ts-node benchmark"},"devDependencies":{"@types/jest":"^24.0.18","benchmark":"^2.1.4","benny":"^3.3.0","codecov":"^3.6.1","jest":"^24.9.0","ramda.curry":"^0.26.1","ts-jest":"^24.1.0","tslint":"^5.20.0","tslint-config-prettier":"^1.18.0","typescript":"^3.6.3"},"dependencies":{"@arrows/array":"^0.4.9","@arrows/composition":"^0.2.5","fast-deep-equal":"^2.0.1"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@0.7.0","dist":{"shasum":"82b16e57f2624ab2525f23c5ddb2d7ec57c71425","integrity":"sha512-aZyLIiDwQwPRF68PdbCW9g55Z6vu0Mtqt1aFs0nGEXNRf8ZNHAbYq8Md7RowJ7ABbi1PQZghhKmf5yamexIGrw==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-0.7.0.tgz","fileCount":38,"unpackedSize":70799,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdl/1GCRA9TVsSAnZWagAAZ4cP/2MFjNM8ZI/3EnEt2VQ+\nLI2rv8+6Va+hZH469VJ2HYUZP2wJ9d/Y4ZOzI4Zbm76yII6Yu4bRuzT/XC/t\ndgVESLC4cyxOL8HCvV9hOfjrAqUaYPXtsKccnuaFG1Q1zaMHJ+LfIZsQVXRk\nZR2S2cCslbheTv8Qssx0xff9mJvOJtbVy7RI9ja8uQeZ1ocAhHfItl9cz2RU\ngKKIMlvtb9ehLU4TSSOS1sHyLblaaXVB84AW0AGMUM/rQHXswHb2GiHvJAyp\ngGJSqKPQya9yRthxjQbZM0mY2LUbRk1v0sL3P/TAIw6jox7iUVTk94PHr3wS\ndoTgI3cuWgg7ix9KISGN0lkfSKsGT9QQiRFmHaK39Rs3zIVb9innjV+2KXQl\nrT+DSKq3ozwWc30XhLDziAAWDypujVE+jWXg/VUuK0cxDO0k4crRojQ9Or0G\n4g7bozLqvwdZ5S/kKR0SDQR4a+1ENpvxpD0ilU7VqXY2bNk8yY53QKuSJy/h\n3iv915B9pWpS1DSWj1thtkAnU6eCmCzTdloiVkQWfg2yhZN3NyPGQXffz0xf\nVaBD2QmZMp/KNYIFpcu5lBiAwc6wQb5pe6hFXh/vuzsPdkHd2BFvVaHOx+TJ\nHGPECjUcqFZYnm5R+2FcQtUCjBaMQLd4Tq8RyDK271UwNJW7biVgWaGJvNR4\nT+MQ\r\n=GoV3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDGwdt1uMsucx+KJIvajnPBDxgfIUw9gyTm1J64S/w2dAIgTYwUmiIcpGiA/FsVVmx0BmokJu/Rd0CbTIJQqS3gx1Q="}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_0.7.0_1570241862168_0.6509472747706975"},"_hasShrinkwrap":false},"0.8.0":{"name":"@arrows/multimethod","version":"0.8.0","main":"lib/index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://caderek.github.io/arrows","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multi","method","immutable","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod","lint":"tslint -c tslint.json 'src/**/*.ts'","benchmark":"ts-node benchmark"},"devDependencies":{"@types/jest":"^24.0.18","benchmark":"^2.1.4","benny":"^3.3.0","codecov":"^3.6.1","jest":"^24.9.0","ramda.curry":"^0.26.1","ts-jest":"^24.1.0","tslint":"^5.20.0","tslint-config-prettier":"^1.18.0","typescript":"^3.6.3"},"dependencies":{"@arrows/array":"^0.4.9","@arrows/composition":"^0.2.5","fast-deep-equal":"^2.0.1"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@0.8.0","dist":{"shasum":"a57d58fe8fa07fddee7fce645ae900a6a2d007e5","integrity":"sha512-C9AUwsI4LmdAwkcK7sGBXPrEo9bKc9D+juu6Uj8gTwfidzXkNoq6GmWkWBNZ6G4pHJwXFFhCqqTBuyiQ21uw4A==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-0.8.0.tgz","fileCount":47,"unpackedSize":75956,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdn7L0CRA9TVsSAnZWagAAFYsP/jq6S9+UGLRSep6O2y/j\nwdmoQcpubQc3HHrRVrwxhoGpcMyMP3M2YCJ0eAwsYkU4YXrBoEAk9A1xcsuo\n9odXTNJ5GwY7b9PymqsmUGYyh9cNZLGi0q8V1KwDQ0d9iGv4gZogAOIY3XJE\nrtnN1DZYAlaAIYHYXHiOfTeYPeFrdwGbZA47cSDNthd0D3Ddnjb11mdBjaUe\nX9SPwl2YcidYRJsXFvVvUPBuiWFG65F865BF8WA15/dSP4g0UQAgN8DW2lxj\nnoqHLgLut6n2wAgoY5muOP32/LX0Aot0wPAWYAumGzb2xKvf063mjZTrNqyc\nFENsR++oR+DMQirKCP/qGOMx5xpiNb1qv5im8QCQODashIG9QGt84PD3ZA84\nj01YaLLEv1vi3I+AcIwPdctna4F0Ayo7OcoPcbw0aE4CZCghsypz3YHwuQry\nk4ykxNOg93VJRjxBL/S2nRbGdLKcsGiyqVqZgX4X18yZCjQjjQU4XcKhbPTI\nG8D0hSPvLkqewN8A4Kykjj5nNeH34MXPOIS2A6tNZcJooh8nf4XsfRZCpEMj\ntHtTpwTUGIFKXE4M9JHrAKIeWbkPTmqjZ/aekfInhHTou4jW5YZdl7OjNBYG\nUD3DvIatMRe+30anar79PK1j8MjAcLTYWmxI7Qj+u2GcujqRQV8Qg1pZJIpK\n/OwP\r\n=5TsB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICsbAdDkpEDwKmwIvK+svLNxek2GF43QIbAw8fhKU6iHAiEA7R8YH2WRhqpkrvFs8s3YkSl5KLPIG9IBY8L5rBwoG9c="}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_0.8.0_1570747123365_0.4015406412150353"},"_hasShrinkwrap":false},"0.8.1":{"name":"@arrows/multimethod","version":"0.8.1","main":"lib/index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://caderek.github.io/arrows","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multi","method","immutable","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod","lint":"tslint -c tslint.json 'src/**/*.ts'","benchmark":"ts-node benchmark"},"devDependencies":{"@types/jest":"^24.0.18","benchmark":"^2.1.4","benny":"^3.3.0","codecov":"^3.6.1","jest":"^24.9.0","ramda.curry":"^0.26.1","ts-jest":"^24.1.0","tslint":"^5.20.0","tslint-config-prettier":"^1.18.0","typescript":"^3.6.3"},"dependencies":{"@arrows/array":"^0.4.9","@arrows/composition":"^0.2.5","fast-deep-equal":"^2.0.1"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@0.8.1","dist":{"shasum":"401ed4cf808941b1c2db44703a8f047fb20a30ae","integrity":"sha512-EmM3f3U7u92FRxJUUhj89Afc/yx8gQK+ezvN3+0t3gPCVqgPs24aRvNkLlUYajrs1gDh1hM92CLaTdtl5C8NnA==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-0.8.1.tgz","fileCount":47,"unpackedSize":73925,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdn8c1CRA9TVsSAnZWagAA4VYP/3k3C3e74s427h5d9Bf7\nQF4D10UC6dcSEM7pFeEvgwMgz+bde84PtrY6PDf1P+yhtIW3v1GH9blp4qfK\nZTj/c9FmXYtES+E3iuinZsKBak/kIDNqfhuqTt3mVGJhSd7/UiGI1eMT/40z\ndrdsJ3wIUsY+16pNb7knX3Hnkbst7wXKjQAEsrYLNaYwZWzCf/X98dEPb8TB\n5u+bxAk15tMYXta4ivWIfEMAgcW7KZB40oKF3R386nM89XO+u8c3WDGXfht7\nlplXCDO70jRJFwx9ThH2ys4LxP9lQtqF2faUYUpFMGtC4z+XEQAVKIIoX46l\nwuKPtoVw7cme++dkIXQ1EJSUN0DLTbytR61E6T3gRLSffyjUR2MlYSDqgNQ8\nW1EDC66xByHIKPG91SG1VNzoeBnjpnWWA6II3N4al/3NXm/Mp/8/PeU8TzI7\nk20fSBPVqjXjyC/dB1aV7XQNMvBNWPX9Ogl+kgubnBG8yJ2zaVCBWBWiFlHx\nhw4XTWEK156+Z/2XZ949rV2K20Gy6g9ihLZFOyzb39AK4m1bmVP10TdTSmar\nkmU8xXdPQ4EbERxtC52c0n+Li7Qb5m2sl9MvSyvn0wyiYyMN4S/1BDuyjoUY\n0WUfnMp1t5aAZtQb9VF6OxOp/yEu5qtxEfIpm2huXlAGWLN+3EN/AygDt0FH\nQj0P\r\n=OyRp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDNfVphv62nYUzThlbRU1ulW6cNv+xp64ZNw1Nyg2fCwgIhAISwg98PSg+tBzhIpwk82IaXLrCeVy4XnbxdV25LaJ7U"}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_0.8.1_1570752308874_0.49955348286303325"},"_hasShrinkwrap":false},"0.8.3":{"name":"@arrows/multimethod","version":"0.8.3","main":"lib/index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://caderek.github.io/arrows","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multi","method","immutable","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod","lint":"tslint -c tslint.json 'src/**/*.ts'","benchmark":"ts-node benchmark"},"devDependencies":{"@types/jest":"^24.0.18","benchmark":"^2.1.4","benny":"^3.3.0","codecov":"^3.6.1","jest":"^24.9.0","ramda.curry":"^0.26.1","ts-jest":"^24.1.0","tslint":"^5.20.0","tslint-config-prettier":"^1.18.0","typescript":"^3.6.3"},"dependencies":{"@arrows/array":"^0.4.9","@arrows/composition":"^0.2.5","fast-deep-equal":"^2.0.1"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@0.8.3","dist":{"shasum":"30eaf62e2d2505a875ea4e82f5b1f93a1c77e643","integrity":"sha512-JzKAWQcr9AT64Lw5xqReMn8JKd5hRBA4qG9TsjIXFIUtB6Sp49Kh2JLMSUsD8EUpUfFDX8Op+tqjKf6dQGbvvQ==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-0.8.3.tgz","fileCount":47,"unpackedSize":75731,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdn/vmCRA9TVsSAnZWagAApD8P/R4WZ0CoRBZxEj9UkydQ\n/JQEX57wKlZoG6QYRyspFwkO5xQgvQV8P9mufbXp66acoyFaxfNvCD8Wu+au\ne1f5Vh/mQsBN/4faH5tw3Ozf8z9LxNyWv0EV/2DpWCJkU6N5oF4CrsTJvLnK\np/2hgvatOCPE1gHlBsPRYyLiSSJJRV3AltOIrzNGIY9GpHijn2UcFLRjrdZ8\nmJTrctzM5QUhfKpa46LXP/b520xYzCF6R4D3MvZ7RE9Bw2aKhKW4lL2FjRhA\nVwZwLiaIx3R1pVetfNjaNYHlqL+XXAA8dBGvd1P8yPKsDSvHAa1r3a0E5g92\nlw4n9LTI5sxoQyOkykRwe2qc94aP6YcERc9zTtwOByDxQ7lURpDDqlAXb6m3\nv+fmDV64XmzDjGItZCEUXWCmk1EcBs26++ajaG+QrywoIwfCa/67VI/nidwB\n7DJa8jQwp6erzeN+/Veq2UjqNoB4xn9j4EFjjqFz7lTC4arYXIBcHY+s5FdV\ntvG3DRF9zhpsOUmhwjdenl0vAQp+UhMWxGJcbMFfmPMdbiu+hJs9mcsy+TSD\nrZWw8ZijRYok/uGngou+w3JDH3L3eTMG/WD6WuV6sBd4iSVyZQlCaTptDYel\n+aE0tSbMvlQIlO68C5btsc5iDglQyMvPcrsiePSAe2edOGM3dBrDgTjBkbQS\npxYU\r\n=yMC0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGhZT676owFGXY7cw2VppkQFD4nYgzVGTLrp5nsWJA/UAiEA52UFKoWGC5s8r0TqR6FJaUnEw/dG8hJGEHdNsJ8xh7g="}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_0.8.3_1570765798125_0.1538630034737718"},"_hasShrinkwrap":false},"0.8.4":{"name":"@arrows/multimethod","version":"0.8.4","main":"lib/index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://caderek.github.io/arrows","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multi","method","immutable","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod","lint":"tslint -c tslint.json 'src/**/*.ts'","benchmark":"ts-node benchmark"},"devDependencies":{"@types/jest":"^24.0.18","benchmark":"^2.1.4","benny":"^3.3.0","codecov":"^3.6.1","jest":"^24.9.0","ramda.curry":"^0.26.1","ts-jest":"^24.1.0","tslint":"^5.20.0","tslint-config-prettier":"^1.18.0","typescript":"^3.6.3"},"dependencies":{"@arrows/array":"^0.4.9","@arrows/composition":"^0.2.5","fast-deep-equal":"^2.0.1"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@0.8.4","dist":{"shasum":"353fa4f94c58b076edfe77b0ccd0fae588d99932","integrity":"sha512-b+LtiM1gr75Xax1FHKIhkXv0oWehsEIdiMrwvAH9uRtbE6w7HIuu2UO/FVMVGLeBacafUA3AfEPoWNo1oPodxQ==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-0.8.4.tgz","fileCount":47,"unpackedSize":75788,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdn//nCRA9TVsSAnZWagAA+NcQAJSq9XCotYbtq0frg4XK\nfitKbh9kzrKEDpvGbmXbReXK8CaL319E3STMk2OqL6IZM/kO/jUTUVT2HPpK\nDhkua119Nvlwns86aFtrtLshQFG85ADrH9t9X9lbj63b54CoJFLRFOrZSkHe\nLTwH3Blv88ArUvRmE7s3+3iNFqsL28KF6aHhvcvDM6J4A5hBDLZv3jaHzquM\niuUweXdNELZbGWEX85IKlLgQyjrLEB1ozPDiXHiaysXSbAhudhinkgf/D8UR\nN5I8iM0JJEvOh9EnTxT5xQp6rd6ZIp+6zmncMyDNgcidAl/vh9m7oliqDhFi\nsU77OFTmL7lY8V0QlCVH+AWJnYMZxadcjH5wLzlsZN05cIRHmyZeUPO7ykAr\nnuTj4+WuTlEXbUGMTuQhdQFUeVMcA90nOHo2KC5dP/rDI6wpFbpa0yhmOxQV\nb421+63LvcKo+95PE0/dClYUldYFrMpMVRsyJxvkTH4Ca01Rf4vWQLvtDOgR\ntWndhvV5v3LfPxMrw46rJxBpqnJdf6uo95zF7xjTHHPztN3VSqEMUzV4oA/i\ntdPw/kBy3DYLqGXhtNje3KFdp1pM28ra4xPmZNu/jzlW05fEpjlYaI8lgna9\ncY2RtBuTrvLl8kAfup/9A0vdAkB1TUz13CjbQc9kIZviw5dMnnCnfGeO/mUL\nstSo\r\n=Lb7f\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC6AsDWmJ/HGl7sAA/+Gpn1/OAbLqPblGoewNTmfxUSNwIgfBVNe6PivyIjlNBuNMgZZwAfCM03g+bIurRPtyGx/bE="}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_0.8.4_1570766822830_0.7770474543708819"},"_hasShrinkwrap":false},"0.8.5":{"name":"@arrows/multimethod","version":"0.8.5","main":"lib/index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://caderek.github.io/arrows/packages/multimethod/","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multi","method","immutable","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod","lint":"tslint -c tslint.json 'src/**/*.ts'","benchmark":"ts-node benchmark"},"devDependencies":{"@types/jest":"^24.0.18","benchmark":"^2.1.4","benny":"^3.3.0","codecov":"^3.6.1","jest":"^24.9.0","ramda.curry":"^0.26.1","ts-jest":"^24.1.0","tslint":"^5.20.0","tslint-config-prettier":"^1.18.0","typescript":"^3.6.3"},"dependencies":{"@arrows/array":"^0.4.9","@arrows/composition":"^0.2.5","fast-deep-equal":"^2.0.1"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@0.8.5","dist":{"shasum":"0b292c1ef2927b3946c69b9108545bbf24634131","integrity":"sha512-8u++R3RxRlEwIZqRCk4GAZe7FhzqsH1jG3/MK97jrijmiAIjONzjC6+PKj8bfte1FRGBnOi2FjWPJjw4GXIAyw==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-0.8.5.tgz","fileCount":47,"unpackedSize":84954,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdoGf+CRA9TVsSAnZWagAAFS8P/j1LKZkHp6Ik2p7GxZbZ\nDBSMhxRYrS+yaVN9E8PWBaHHaChr/dh+r4MRWQvGXtjrb0qhkIdHappXiNgd\nmr4KAGTKuDLkpR60svvQ5s4HScLQIQC8KBPN+ADEzDStf0n/Q82dcvp4g6U3\nOIkbEjA3rjL8kVZHjJlAFFPmE2krEWSj7KLyggCts9yvskdYH46fyUOs7dBh\nePjtg6cW5y5NmYH+VuiHKWCiIzuINyxu24e1WdyCJAvWMLA7bcHwd4pRFtJk\n1d1e/1oMyjqIDumX2PbxR/5Y2UrTRDUrUfbrSOlg/rd1nMB3YCnq6r90GTHM\nmE4lakjY+pzOxYam84Y6VfktnmrW9w0bUsWuAhIAXL0JgU7LQmAzGZcvmckX\nRQS9k7Vs7LHFY1JxN2lGBvjntKObTpKSPO2kq7WZQEztMK5mtmpGEJV0iwc3\naNvo3dGcfieH/y+ehEJzj/sqlOXUuU8/nLlC9aZxDuffb5Q3iMotgoHfXb9F\nNEBaClgvffIw1/npgDyMefmJOrxPEVwxOUDYy0x8xZZG3snG7v/8h32C7ohu\ne8pDlvzfB6OLqetYIxu0QneZkxEx7s9H6K6jJS3XhXjVaQNozT4TU7GI0lgD\nLvonk/2uxRZkj/G97jWSFXoBmpf6b7aew/BGmnhr5LmezPRvJnzN2pyN1dfx\n/o7j\r\n=c3F3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGhfMquTvFzZW4rLQx36PZbCDG1SWlZ4gT/0g8Z3r3x+AiArTM5WNaPpov4BDt1soNqYUXat3+OEWvJ1SQjGGpm7oQ=="}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_0.8.5_1570793469536_0.7891823384578247"},"_hasShrinkwrap":false},"0.8.6":{"name":"@arrows/multimethod","version":"0.8.6","main":"lib/index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://caderek.github.io/arrows/packages/multimethod/","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multi","method","immutable","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod","lint":"tslint -c tslint.json 'src/**/*.ts'","benchmark":"ts-node benchmark"},"devDependencies":{"@types/jest":"^24.0.18","benchmark":"^2.1.4","benny":"^3.3.0","codecov":"^3.6.1","jest":"^24.9.0","ramda.curry":"^0.26.1","ts-jest":"^24.1.0","tslint":"^5.20.0","tslint-config-prettier":"^1.18.0","typescript":"^3.6.3"},"dependencies":{"@arrows/array":"^0.4.9","@arrows/composition":"^0.2.5","fast-deep-equal":"^2.0.1"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@0.8.6","dist":{"shasum":"120ab3f202e9145a10155cb15330b57b792f0fb5","integrity":"sha512-/xFqN4aM2HAvUhEr1aB3pocZ7nAOuToUFVDTIgImUqfwAeASrQygFxGEFd9t06/TTowyjczEvVGSSlvWYs5Ntg==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-0.8.6.tgz","fileCount":40,"unpackedSize":76712,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdoHQdCRA9TVsSAnZWagAAWEwP/Ay/mYlWGfHdO2YrybfM\ndjBA9j4dPKfvtqigiPtOu1x1sataJRbqtKAoKCIZNgYHIHZGp2Mt9qXx01rO\nXukdn0ns0eVf/cYVB2q6EIAo20+zzvqfdbr2F6lyjIqivFS+3bLAJBwwHBxU\nytwt77qkjqRoRn+L1nbVeTbzQCQZCkfAd/+kHUs72D8VNPPpO7z2U8c8mQ0h\nOwOBuMle8kIMH79+kZ2gofat6mMdSgyI4Ui57wvyBrRo0QmQqG4aJMMkw18+\nqEE4BPqau8gGzd7E6j/R/QFPVH0pUvghjpS+A4cDUxh/ALW48WYz7N33tZGr\n6tc4vriKTtDNmi36WSTdIxDrkeMpKZwTzUMDgn/K3bR3euhfsSur6ULhRiDm\nbRhkzWLHCYMDtXd5VQNoXvvCCuVgmdgKy0q2PJDYnrQAUbJ3iAyAoYyqJkiT\nddcwLOcktn5Q1NCUPALCvOFGbZVBMUdsMO58MgQTODhIoG5Cw2i7keCSURgg\nU2cqxyBPPI0XKLkwY38E0X3+E1mtn8T8g/J4CxmVZIrDtLK/iZcGzfEZbhhS\nyx3gsJ+ErtywS3EhvYxBJvnTNbbBoI62SGDUsxsSkV/kzWUdlcSNOLYKBlII\n+sLrAiFqUyST9Tvx2RS2FIqooPAfPwNA/RlyVUF4b9wD2lFtzvwhwATjPb2w\n9JrS\r\n=fOJN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD1nhK04PbAzQPsYZKvJoxQWvGyNTa+zPPsi5UbbLZpRAIhAJHPMQGX3Szxj/iXKp2JH5dpDkiMzPx6QZW1Z4e3olq0"}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_0.8.6_1570796572609_0.36733670337703783"},"_hasShrinkwrap":false},"0.9.0":{"name":"@arrows/multimethod","version":"0.9.0","main":"lib/index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://caderek.github.io/arrows/packages/multimethod/","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multi","method","immutable","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod","lint":"tslint -c tslint.json 'src/**/*.ts'","benchmark":"ts-node benchmark"},"devDependencies":{"@types/jest":"^24.0.18","benchmark":"^2.1.4","benny":"^3.3.0","codecov":"^3.6.1","jest":"^24.9.0","ramda.curry":"^0.26.1","ts-jest":"^24.1.0","tslint":"^5.20.0","tslint-config-prettier":"^1.18.0","typescript":"^3.6.3"},"dependencies":{"@arrows/array":"^0.4.9","@arrows/composition":"^0.2.5","fast-deep-equal":"^2.0.1"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@0.9.0","dist":{"shasum":"329b17226431ff9d27a0595f949ca943711eba2b","integrity":"sha512-bY/+RFU+pz7JTSwEtr8RNGXLe23i5UqK2Mm7diVv5ikTaZU0f01zYjeNVaOveOixeJzpyrJkqwx9VREa4/5sPg==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-0.9.0.tgz","fileCount":37,"unpackedSize":79529,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdo85hCRA9TVsSAnZWagAAUhwQAI0DOmfJM4H9CRcNE2JF\ns+SBbFpe17rjzLOjkrO92+DBQlyLco0wLSet1G49Sxo0omz8SAB7QQdUp94L\niZ9ZUuY6H0QyTq1FlscEpMAOIc+zUuaJHxcc+WaO7QUgWPNrVswjGS1JINI/\nWhOuolZkmCiEnW1i6vDs6YrT7+FL2m+H+HpmOp3oYfRyCpXsusMIgEdg8IcT\nHaPLBcu5UAHS1y4furGhcAqCFHkNm83gjKk1TnNaBX8n1GTJqTk3A1/4c1ZA\nxDf36PdtdXc40QilFxgF5i4lwWeRr3PqIIB3ONc0gI6w+qecfJsQHbecCY76\nz+WJzbvyyqN36Y1jsmnpZBYILVkzwMO0G5RDnApVXxPnV/p96Crqc66NHA0v\nPRkcHAJWdjitmRgdrhSnaSRwsj8PJe+v4qr3w8JDGOQ+qjUMr4B5A1rLEZma\n6As0fNTJmfeXE2sf5DXdgxUVh49MrJVQjZ0+e9vZAalob+NkX9NaGP9cET0b\nTCMMuec18+OMg5/7lVu63d/6lV8Fk7aQaAxaYkTynaitgF5vAssij87X+EFS\n3/ETStmP/TF5hTyZoX2WJZ1FJJhoccq0TDd2BAMcsR3n8Iv0At3JAdEQlz6u\niDFf693PE+KKWYR12PchikZ9B1t2HoUUZau52RY3mi19cH5D86TkDJDsJEH/\nces/\r\n=3Dtc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCr/e2cvQsUE/+nUuy/g61QhkOXWJZLBbUMb3WHtgm/iQIgPSG6tBskaEN7zQiN3fdWM9bjoEk+Cs3kj2ssDp+xcT4="}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_0.9.0_1571016288426_0.4207307473399924"},"_hasShrinkwrap":false},"1.0.0":{"name":"@arrows/multimethod","version":"1.0.0","main":"lib/index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://caderek.github.io/arrows/packages/multimethod/","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multi","method","immutable","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic","types","ts","typescript"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod","lint":"tslint -c tslint.json 'src/**/*.ts'","benchmark":"ts-node benchmark"},"devDependencies":{"@types/jest":"^24.0.18","benchmark":"^2.1.4","benny":"^3.6.6","codecov":"^3.6.1","jest":"^24.9.0","ramda.curry":"^0.26.1","ts-jest":"^24.1.0","tslint":"^5.20.0","tslint-config-prettier":"^1.18.0","typescript":"^3.6.4"},"dependencies":{"@arrows/array":"^0.4.9","@arrows/composition":"^0.2.5","fast-deep-equal":"^2.0.1"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@1.0.0","dist":{"shasum":"5d956dd009cd1dd6934994898eef105b9e524305","integrity":"sha512-pcrvjlEE/6kJewQqupz8GT0pBaoJ42fvtUh1QrCkQcLJSGQQzyf5eveuz39Bx0lOXhmh3bntWCJ5m2ZtefjEWw==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-1.0.0.tgz","fileCount":40,"unpackedSize":66851,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdpCVjCRA9TVsSAnZWagAA5ZYP/12vuV9BHk64f595Vm5h\nqdPviVzXmRrgJlY77s9MP24T4GWQaNc/hwewzw0sz2sayOjn9Mba1a8JCsfr\nlHtNj4saybkS76AVu5+YgGZJClwLOW2DTJ/LRJ9CmgR6T+mE1Bk7kcByHCj3\nT856EDM49LP0+NM5xev3rm+sPWZTedu+PvlEGWSIqJmzXyJJGvQI4vavIv7+\nBZvRtWPfiXINOibRp9iS2tszrSwa46kNxnjq8V3Nc3DJOWDjmKPGDCjomCSw\nw9LEZ519iNR55sYLh0ua7AS28tYsYZDDnJuBARmhWsSCtohkpkVMVAf5NCGv\n5W/Fd/VibwE4BOA2ACcqIDPYHSuLEshn5Qu9pQzXLtjwsWyYRVyutxmSCVdH\niTV6bbpR+xAzfk4rVwZCv3S0R/AnENEsnG6LXIpL6uEXE8eab8jkkxhgSMIS\ns9Kt6mjzEQIAV/Kgt3Kz5tZAn+vHmgFTdZMG4dlNd0mY001DYXMIB5R2nbEs\n0n2q+fXk4jm7ojahcq+HpM23LcoevaBApRMp822H0w3DK4BfT0t2HWRsWPa8\nKQfa+SusCHv8elJdFQnFkPNR+3a3eqWOKq/SoAVT3rWAFbguKcUm3PFEj2dP\nqYrbuaBWsI4b16Axl90rmnrHn+KOt9IcopK+yI2lg4r/6dyojV5PJ+mKOTUT\nX7b4\r\n=bjyr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDiysLn3F7BYe/R2rD2GUxkJO/zfs1YMrktN2pkB31vMAiEApRMdnR9OjOoP/5bXJtW5j01h5rkgZt1ZVpnNAtvoXDo="}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_1.0.0_1571038562120_0.6417984735263593"},"_hasShrinkwrap":false},"1.1.0":{"name":"@arrows/multimethod","version":"1.1.0","main":"index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://caderek.github.io/arrows/packages/multimethod/","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multi","method","immutable","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic","types","ts","typescript"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod","lint":"tslint -c tslint.json 'src/**/*.ts'","benchmark":"ts-node benchmark"},"devDependencies":{"@types/jest":"^24.0.18","benchmark":"^2.1.4","benny":"^3.6.6","codecov":"^3.6.1","jest":"^24.9.0","ramda.curry":"^0.26.1","ts-jest":"^24.1.0","tslint":"^5.20.0","tslint-config-prettier":"^1.18.0","typescript":"^3.6.4"},"dependencies":{"@arrows/array":"^0.4.9","@arrows/composition":"^0.2.5","@arrows/error":"^1.0.1","fast-deep-equal":"^2.0.1"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@1.1.0","dist":{"shasum":"83a3019eadee18cf089f4202739683682c8e74a1","integrity":"sha512-7At14SODz97q2BRFQt6nnG5ofJpWWBsR8LzAHxLR4oTySefQI7t51Zowkgpmae+Ch+yBi+Wlflfj/kxxtpYhOg==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-1.1.0.tgz","fileCount":43,"unpackedSize":70169,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdpJzZCRA9TVsSAnZWagAAGzEQAIyyqGiifRaw7HhCbu49\nXh3Ep/v0fZQm+z1WzxG3oCFgQq+lwAkFF91IxsIa61IDv6YbJN5NYHVaA/ny\nIWkoWHuT70KLNOOKv2qSWC5jMnKL477P/f6z+80DzfZxQXNCnvpCl7AURREl\nBvw61SeNtxCIXKPw1AEASk/lze+/6LOxcBiu8vHtUzAIBL39IdMeuqf4FbFK\n84zMMEsSz1zAbIS0nycFrsZIrFDFOzvzSMWsJdAtgUv02mOhlbhTbk+O+lgp\nrxTGkEZzx/zUpdOzE+7yEZAu/zaTB4ZOL6PSiQiVJPFNe9UJK+3x6ZE8oxuK\nzFRPyvBowEyj2Z/HbBvUh/qzqcfcq3QG2WJ8+Ki3Tfhnt71qcN+nlti/43Gv\ndhMFinJHJ/VW9T3ejnzd0QTJdL3YVJhBmEC5L5Fpn8FQQTvFyWHIrDJgbj1A\nxWGbc9f58kZpOCEmdFwe45X95x4wn6nIOH57rsLBIIaB6AihXkrMIg4qKvae\ntZZjIILrFUBJr51GIFXa0jxYDav9oq7NtUPyE5Ok22RX2KQXGtLEBNUh0lW6\nWSKy5ZX014YIs2Q5pe0JEAsyICs9N0vvAkqDKE1vQ8tXvI/uIH94i2tvmY2A\nrEwEUxlEtEEWCw2p/ovEg+4NaodjMgEqshtSAWZOPYotPDi1zq32xciXoJju\nXmRS\r\n=6hsQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGL5/hTR+CwKXffDPZ9+jAGFgO6r8EjAhq7ZunYIivJWAiEA9STqjer1brRLEaCVSSnpWHeQ/H+c8Zf29l+sO/a2qgE="}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_1.1.0_1571069144506_0.20422154737306486"},"_hasShrinkwrap":false},"1.1.1":{"name":"@arrows/multimethod","version":"1.1.1","main":"index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://caderek.github.io/arrows/packages/multimethod/","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multi","method","immutable","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic","types","ts","typescript"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod","lint":"tslint -c tslint.json 'src/**/*.ts'","benchmark":"ts-node benchmark"},"devDependencies":{"@types/jest":"^24.0.18","benchmark":"^2.1.4","benny":"^3.6.6","codecov":"^3.6.1","jest":"^24.9.0","ramda.curry":"^0.26.1","ts-jest":"^24.1.0","tslint":"^5.20.0","tslint-config-prettier":"^1.18.0","typescript":"^3.6.4"},"dependencies":{"@arrows/array":"^0.4.9","@arrows/composition":"^0.2.5","@arrows/error":"^1.0.1","fast-deep-equal":"^2.0.1"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@1.1.1","dist":{"shasum":"993fbf39c565777c3a2f4fb5a5d7eff8bb7e1611","integrity":"sha512-ueMaMM8Lhg1jcgfT5Q7jYTLegLPRlUdLIdqzdtUYbglcO1Goe3TdrtNk+wc7H1nMGVkeBILMaiq3R9OEpfiUYA==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-1.1.1.tgz","fileCount":44,"unpackedSize":70938,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdpLBSCRA9TVsSAnZWagAAyzQP/0DqTIm7y0eXcOaZVxgA\ntPEG3N9V4wJ2nRWR3TfmYYFti2EvEzcl+eNS2sEBhtWvl7efqWWUrNCAYqmh\nmP7urIIbLoWJZXiINw2lEVrEG4LkYIxRHi84ko9Bzw+gTf5FCPc2eEYfO74l\nhgKRHLyFL08I9vgPsynv3hTe573kplB0nCkGm4yvJOGp5vlgvoyNrtUYgvyA\nHbVW28LK89ycHOgyoV8+y+2CpyspKHpbAR3uA6izrJpBD2ypMXMUqlCui3sf\nsYl/vxDalKsdvzfDp2l1rWAtuynMIIn+4HH6b2702AWiL2hKin1C6dM8tsZX\nGiXCiyJChveXNzl+uDcC4xPGjHy1jfW/KzawYjMgBuMGVye2PRiPj86UxoMP\nyvmPCJC77RsSKcLlsX8wTsw6w8um9nx4qRu4iB6idqdgWDr3zx/uEiscCR5A\ntpAvJz80jqpjhyfbzqKlWRQaS9LIbmIlM68a6dF5GVxXVl1SzolQJeurEHiP\nTbR5hZ86KBGrOq8rF6JtRyBmOy1D1C1H+v3/ITXcMeP8XnjKk7DDPVE1wpRT\nlWF1bew6CkJ6spptqQ75l34xxWfsOg4HPDjUbEpY1NIP3Spp59xw9wJCio6S\nrl5pguj1wmBi7inZX2vLIod21LcbAhE88TajRx9FVqqS1hv6xdEmtWxqmcsp\n5n7r\r\n=9w0x\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEvHGhDycEqmIEQhd/DHfxm1WfNuscbvFIQBO8y54Y+XAiA76kwAm9CYhTfBNzrJMd96SzqRRyB4Z59K6rl1FG4LjQ=="}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_1.1.1_1571074130151_0.2733788292356403"},"_hasShrinkwrap":false},"1.1.2":{"name":"@arrows/multimethod","version":"1.1.2","main":"index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://caderek.github.io/arrows/packages/multimethod/","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multi","method","immutable","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic","types","ts","typescript"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod","lint":"tslint -c tslint.json 'src/**/*.ts'","benchmark":"ts-node benchmark"},"devDependencies":{"@types/jest":"^24.0.18","benchmark":"^2.1.4","benny":"^3.6.6","codecov":"^3.6.1","jest":"^24.9.0","ramda.curry":"^0.26.1","ts-jest":"^24.1.0","tslint":"^5.20.0","tslint-config-prettier":"^1.18.0","typescript":"^3.6.4"},"dependencies":{"@arrows/array":"^0.4.9","@arrows/composition":"^0.2.5","@arrows/error":"^1.0.1","fast-deep-equal":"^2.0.1"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@1.1.2","dist":{"shasum":"be7f5ef1b74b3bceae44bafc771baa73dc6403f6","integrity":"sha512-/SWjdQ4UHnd+4IP9I0lkCNdmSxJrwU/4TvaPv1cw0T9GXp+0M9PZiSG5OpnQKS1DoIszjcuur0EoxpG+L3USHQ==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-1.1.2.tgz","fileCount":44,"unpackedSize":76944,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdpmUMCRA9TVsSAnZWagAAaRAP/iEt5rwFFcMPJCGJU18C\nf/poXVLodov5NRByH53Ub54WLZB2ySq4cFx9z1zGL9Wpb5lwzGrnZkxJvdD2\nRR4J3xhwnGskKRf7WMN3skg8yiZnqmM4AznOxvdA9zKdDJv6zdNtccUy5U2t\nL1BahqEDYIPO3/rB5Apr/B6Z70MFGwBymtfdcqGGb3KxGjbNXwb47t1HBHO7\nR1+wWEs8JYRSwH9DY1WiaTz73HEUxcLU0SXpiaFQxfpOA9P3+BUz3TX80cwm\nzshR5+8pdhjj3DyLK64DFBdM8IscNA3pKlbDfzq+W4EXgMxPXc9c/SJXu/sg\n38EUByw5R7Okc6SeLqAGrmqSYOUHXVkOetWMa8N6z8gRUZhWtZ7cWHjy7CKa\ny+ZT6ZjeoJxbfxfiU5sQ3O1z6lu72WKtYuPNzZEpzV73BiZyZQymPzL5TXHz\n6+SSIDa2ZNONoe3uPiLx2iJ7pNQE5ciwS6rqBTc2x0QHUo4NDW64VcKJvYsC\n4tg1VLNWcDAmFWe6u12mE4/7FxHGhu2vE4FoX4v9wx84R30MIvpTOu5yLIvO\nV6sh+ZW4IjhsBlGbl2IxrSAmDqP4SMkTZcB5WC2mvcykc6v3nA4Y7Su61rOX\nn0OgQLtLbABGUSDQM1YyD4iykHy/JPjdgMOLCK9QKZni3q4rw2jL1NW32CxB\n3yCR\r\n=cRWh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQClcNFYHUvA//hO1hMMXeyfUCV/pfrc4JCZKqlWmjWqgQIhAMXvPw9BsOb2Jd+NDBeJK+HyOdn0CG+t1/5uAZ0fIBDz"}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_1.1.2_1571185931477_0.5129371203396127"},"_hasShrinkwrap":false},"1.1.3":{"name":"@arrows/multimethod","version":"1.1.3","main":"index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://caderek.github.io/arrows/packages/multimethod/","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multi","method","immutable","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic","types","ts","typescript"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod","lint":"tslint -c tslint.json 'src/**/*.ts'","benchmark":"ts-node benchmark"},"devDependencies":{"@types/jest":"^24.0.18","benchmark":"^2.1.4","benny":"^3.6.6","codecov":"^3.6.1","jest":"^24.9.0","ramda.curry":"^0.26.1","ts-jest":"^24.1.0","tslint":"^5.20.0","tslint-config-prettier":"^1.18.0","typescript":"^3.6.4"},"dependencies":{"@arrows/array":"^0.4.9","@arrows/composition":"^0.3.0","@arrows/error":"^1.0.2","fast-deep-equal":"^2.0.1"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@1.1.3","dist":{"shasum":"6d7a3f96ac8c8e58b6f7b9df6a61e34972895e59","integrity":"sha512-maZEFE/4phyFDKwZSV/4/7qf5MtStAGUGdEpqIvJEOqllrxHTXJFLxPvpQ1gRbmYaHHDRczZUBySD57+wBwnlA==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-1.1.3.tgz","fileCount":44,"unpackedSize":76979,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdp5X9CRA9TVsSAnZWagAAZmMP/1bkr7mD4kN7jLwUpv/G\nDK3sJh30OTKDHRKkEjodfksLjI3nBFWiJmKkY25098bgPwKW/ZW5C0uyC6Sz\nIzrrpEYGK5mIc0yJdL7KjXoTlBgINdQNBIlGkRCdEyDMHEEdODkKwulCMbDM\nuWNtVzPG8/ufAIBXNaYnvnNWTfa2/fcpfBZFJKXjLP3+TG5qZxwEHDHFmsNd\n5/OnhyJC/9lACHz1lXouHcwPu8J0pUiny0NEXquiCwk4dAcqBRmS5JPVsESr\nj+mU9u4ewAGDQA/yvuvFdFeqImYK0OPEXhyoxwByqlHm087WG4ls7wCc60i3\njWZHgDiTy2cHu3J+AKZFg5RPuLOLtCYvxo8xBx8bFI1Dxpe87a+1dURuHbZ1\n84Yo5XBnTttgOTcUci9vt2dLaii30MqkncrSrjJpSC3N5wh1J4mcwbfHE0Vh\nBcXL3O289J5Zmf46pYsr2vuDbIZEkEu9PRw6wYredfOdjaLtix5RGsFbbQPB\nHNcsC0LiF47uxcEfnHWpt64tDHr7lKj+EK3mNEgg2xO6q5IranHjriwP9fi6\nM5ME0dYC0PyVUu+BRUIabdQkiVuKGZOT4yZ2PCQchl4rKaqyOip+UcYL7Uei\n22Ck5ADxVSX+Xk4Kl/q2Gu7CVw+bjOLoKV+PhRRk0B5Fvn2ypsXmzN/Zpnxo\nCBLv\r\n=t3Ly\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDntM7o3TmRauLBP3WBUiRps0y6B2KCCZSHdOToWeI7QAiEA8VINwU5lgilnPbyM1ghN3D1eQyFbOE48x+pcWY6XAHU="}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_1.1.3_1571263996216_0.6048934949383002"},"_hasShrinkwrap":false},"1.1.4":{"name":"@arrows/multimethod","version":"1.1.4","main":"index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://caderek.github.io/arrows/packages/multimethod/","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multi","method","immutable","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic","types","ts","typescript"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod","lint":"tslint -c tslint.json 'src/**/*.ts'","benchmark":"ts-node benchmark"},"devDependencies":{"@types/jest":"^24.0.19","benchmark":"^2.1.4","benny":"^3.6.9","codecov":"^3.6.1","jest":"^24.9.0","ramda.curry":"^0.26.1","ts-jest":"^24.1.0","tslint":"^5.20.0","tslint-config-prettier":"^1.18.0","typescript":"^3.6.4"},"dependencies":{"@arrows/array":"^0.4.9","@arrows/composition":"^0.3.1","@arrows/error":"^1.0.2","fast-deep-equal":"^2.0.1"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@1.1.4","dist":{"shasum":"519314eb95a2b6f9c9102419157569799389a155","integrity":"sha512-7fVfOKUelm1lCfQ93dFcUoEyg29Nr6zmRW2WCnodga2xuTy+LHGuFFLJrKHbHKX4MimIhwJGpjJ2eKhlsGRgeA==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-1.1.4.tgz","fileCount":44,"unpackedSize":77176,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdp95gCRA9TVsSAnZWagAA470QAKEpts0yzgkVwsbGTj2N\nIsUshUkRO9ZfOnQ+pLziY2nKj+JajJFqS5ghLaPciGvMVnphHvIqmBYJ9GhR\nmi6DfmJ9CSIOkIhrLFzAKczqX1zgjIp381cnOCyy83l5p/9FH2QibT2KaUTv\ngWrE9iImwD4YJYN6jm1cbDoVDp5ssyUSC/eVDCJ5uPZjhbu3PsakRpNob/ml\nYOddPOO7osOXcKa7qcwi4CkH7uFrFk7Aa/IcZ7aEoY6wn6k3aqTfDtFCIl85\n9VDR+B572TcOd5sTiihiw8e80ClOUooKOhIWjeReRdCG1PK5shro+aBLSoh0\nhpoKnIdTZ7P3RtupTbZvEVpwMSHjX/8DbfN1RiRN8epBsjk758xu8kcAH5Wp\nWHU74lrmyBkkLb+2LYI7WaxfCuLFspkLX9+8X1FldmB1sqxN4TcGKYNW8+MR\nMDNj5yvTtDH+vhpH+lhJFpY0QHgUDwiaE8jbPAdb3hwdNHDkvscKmA+4XcMW\ncnkYHp8J2duoI1CvxdB4bCg7bGBINfm5QEkHxqYoOqyqJ7PaboB6ddrQlcYA\n8jpsFYQjoEkTMrNOEneMG9ocPYRyXKazI3WtjLD15VWpOPJhBXxJWxani1f+\nLCLsJ//68p+RG+7mbT/zizi4gz9dLW8XqsT7mnKOGRWAubC4eYM6VlVyXhNY\nvZQ3\r\n=OdkF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDjKDIdrcf685cRfW9WksSFoT55qzOvXLlpKNG3VUMlLAiAzRlSuUuMBaXleSinQYZzhIwBS0iI95oNJtKWVg5LzCQ=="}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_1.1.4_1571282527460_0.7127622362400472"},"_hasShrinkwrap":false},"1.1.5":{"name":"@arrows/multimethod","version":"1.1.5","main":"index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://caderek.github.io/arrows/packages/multimethod/","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multi","method","immutable","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic","types","ts","typescript"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod","lint":"tslint -c tslint.json 'src/**/*.ts'","benchmark":"ts-node benchmark"},"devDependencies":{"@types/jest":"^24.0.19","benchmark":"^2.1.4","benny":"^3.6.9","codecov":"^3.6.1","jest":"^24.9.0","ramda.curry":"^0.26.1","ts-jest":"^24.1.0","tslint":"^5.20.0","tslint-config-prettier":"^1.18.0","typescript":"^3.6.4"},"dependencies":{"@arrows/array":"^0.4.9","@arrows/composition":"^1.0.0","@arrows/error":"^1.0.2","fast-deep-equal":"^2.0.1"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@1.1.5","dist":{"shasum":"b29150f5df869f89dd714aded12aa49148c98d95","integrity":"sha512-YhEz0gmRbqlPrmk0czxnUxdVeubVIBKnhlGth7g5og4tyR+5BpqP7scHMqIflGrkoitektC0pd6qdB8LDPYj+A==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-1.1.5.tgz","fileCount":44,"unpackedSize":77176,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdrTTICRA9TVsSAnZWagAACLUP/ROvmgogWxY58fuBKJqV\ngUHh2GtXha0om5wBzxYK2CFcDYrW76RNXYX0qG8xe32HsCfNU76o0QyFTcwb\nBp5nmdkno30O7NPf7Yb0HSgYoSX7GNY4NbJqQQ9YCv8rAuYvRcVBk9e6tXop\ndCfEK/QsruCb1B9rlMPCRjEiiJO9TpE0f1ApCG1KEfge9Xp7iyR5VuHUiMiH\nBwTSQznUfM/JAg5hz2i8n6mQgQ3Lenyr0aMQcSl0RkdOnluUyrzVy98mip61\nyKnyz+cQmuwJsiWSvRAS5DphOZdQpTRfnbIXko3+Gh6BE1Y8s8xFmUdNNudT\n8r3B3bNQgvcR/clOuo14aG2GShBHTZ/6nU4aDvw5t8gnHsdM6rHwNXk5Dt4P\nQ+DmTQWHJihJW2tK4tImazi26+ZEwrzou+LZiPG+MfiHHrJyXZohcLkpaBq9\n7QBaF3vvQXdm1U182G2QGWeBVbs8wouGQUbN38rAX3koE87VvrV4ibgYv4cl\nvPxGryXHU6pljku8IWo3R5SmzXaSggr2HtEcXFn+06pybQSg8uLLTz1gKjOY\n678h3XbwG0AfK/gRntGvRPy78jmL6uxzNkTAX0OwPd+AX6G1sLDXbb2y5qJ2\npGdyUiN4JCRsfLC2AnPYJu0upcuUj5qwZhFFYybXti6+VxKe17cW3S15LNPU\nwsyO\r\n=TSfu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDOgIlzzIA/B8buAdr+8oJODg7PcYLJS4/1WAhhi3Y0PwIhAI+AxZUHEavs7r7whOIxGoSBekJc6eTIw/CTwVVE2R3Y"}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_1.1.5_1571632327243_0.07132193840946077"},"_hasShrinkwrap":false},"1.1.6":{"name":"@arrows/multimethod","version":"1.1.6","main":"index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://caderek.github.io/arrows/packages/multimethod/","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multi","method","immutable","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic","types","ts","typescript"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod","lint":"tslint -c tslint.json 'src/**/*.ts'","benchmark":"ts-node benchmark"},"devDependencies":{"@types/jest":"^24.0.20","benchmark":"^2.1.4","benny":"^3.6.13","codecov":"^3.6.1","jest":"^24.9.0","ramda.curry":"^0.26.1","ts-jest":"^24.1.0","tslint":"^5.20.0","tslint-config-prettier":"^1.18.0","typescript":"^3.6.4"},"dependencies":{"@arrows/array":"^1.0.0","@arrows/composition":"^1.0.0","@arrows/error":"^1.0.2","fast-deep-equal":"^2.0.1"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@1.1.6","dist":{"shasum":"0c95e861a5a80dffb1a11ce024db3d347562cc35","integrity":"sha512-bhH5M/xa0mHKQe1MoVLLzpKSw10JYeiE7ADlFwOQcJyXQ40CP3QDrhIML0T6xU216ujrF4TkU5FNvoJgtfiXVw==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-1.1.6.tgz","fileCount":44,"unpackedSize":77179,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdt9AKCRA9TVsSAnZWagAAbQwP/i1rvjqEQlC13Pbd664M\nmPcL7TX3E/BwJFclner1hrd5R/vaf3q70TsDjL65QH4zlLygmhNENqQc+/tq\nCdNMQ7ySeBE4e+2wsT8PFKgD155eTlfKZLP20yXi+FrLhIYjGV9iCYoku6HP\ng8qXw3f+FRl6u8My9aVe8TjKQe6ZJI2+fI6JlEEjn3SDKuPHcYYPNwbuMXpP\nyW730DiYGjnjWKZcw5mBgx0Lb34HqLjxbNYF/+GLRtY0vxe21luX9WafgMnt\n6chlsxvm4i5Mq0AZoy+KOphtHdCjyUdptolosiug+/+EA25kM3G/mvdezQ/G\n5wHWMWunkSPGMqp1uX7obzBwwNqYAtfVpyz0nDX9dXwXz3EaWMDz8QR34S6j\nhRBxulDFMMQ7DeEm28eWhKkQYbLWmT+RDYV6CRsl77UhEZz+F9JHfZCCT0Jy\nFHAzNfDRW7ZJ/6jdVliPibnZ1ufzPRRqgMRjo/SnK2DJTvB9qtaardTydP3B\n8OaO8kmjcL/dAVeW4sERuYApHL/h+UqHp34HMmuSN3B6BuSzQEalmvq8U2FG\nevr5FlqhVfaq+Ch74tD2AmqUlOXu0of1bpjB5Px5KTZNBrbfiM5plo4wH6EU\n5ZXAIEpFi0IhfZGi7o/pry5mGwAfji9PfMGa+Sn4H2QFWxOJdoBPygKZEfsO\nJzN8\r\n=UfaX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF+KceAZEowZQONdMXLC8d2vF2/3jkEYaJqCaVbaAZrTAiEA+qPv4w6uEYBKdEMETkxXj00sSEeuGTJwN4KVRE0amRs="}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_1.1.6_1572327433572_0.1580945626081447"},"_hasShrinkwrap":false},"1.1.7":{"name":"@arrows/multimethod","version":"1.1.7","main":"index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://caderek.github.io/arrows/packages/multimethod/","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multi","method","immutable","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic","types","ts","typescript"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod","lint":"tslint -c tslint.json 'src/**/*.ts'","typecheck":"tsc --noEmit","benchmark":"ts-node benchmark"},"devDependencies":{"@types/jest":"^24.9.0","benchmark":"^2.1.4","benny":"^3.6.14","codecov":"^3.6.1","jest":"^25.1.0","ramda.curry":"^0.26.1","ts-jest":"^24.3.0","tslint":"^6.0.0","tslint-config-prettier":"^1.18.0","typescript":"^3.7.5"},"dependencies":{"@arrows/array":"^1.4.0","@arrows/composition":"^1.2.2","@arrows/error":"^1.0.2","fast-deep-equal":"^3.1.1"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@1.1.7","dist":{"shasum":"bc7c26c3aa7703fc967e65da4f00718b1428eb4a","integrity":"sha512-EjHD3XuGAV4G28rm7mu8k7zQJh/EOizh104/p9i2ofGcnL5mgKONFH/Bq6H3SJjM+WDAlKcR9WBpNhaAKCnH2g==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-1.1.7.tgz","fileCount":44,"unpackedSize":77565,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeKM/8CRA9TVsSAnZWagAADMkQAI5arYLrLBgggN1bcYcp\nT70yF/YekqEZzEFd51mC425woosK8dLXsIMItwnqcv9TTjss1VeFMZTod1Ms\nnRqXLx4FzzeOw2/8RsMBB/JB8PBTdr1iM4QP2kxWnyO7X7xuJrs/EGDq7AY1\nP3uLAW/aD1g8pNStFKkSkzYGdCECT4H+hJHxeYkz9VWsjMfe0sQUN8rBbT5E\npAC8/VDEicZbVh7upY0zruYppAjSXxRJFkgbb0PCu9n3g3xtgJQ91epO0K1z\nnFI5rxECmRN39p0nH/46CP/gRc0wlXr116L8po+qR0cP2gWyYUCUTcisFhuS\nJXiOCP9Z31wmKFTntzBDf3TFX9sXTJhavo5wvomIAZQgnE8Z/NkNL9/KAsQY\nRpSD3yVMWe+JFhXuie5vkTlByXEuE80bgSuoAu3NS62SdIdWohccwakH4b0M\nhR+GIQxNR5ASwE7tLJAfAfc3YiFRU9AoPqWcy+QhzF7HLD5Dczvb84eM3EEX\nV0RhK60WOOkXGcqVL48E+EDafMIDgivpMQacjl6xLyN151LHy1TWPtbXJJGs\nkh+gL52roZ1tC7Gkq3Avd0Xl5GcWw2t+iXxpjZ8Gj2pL1N9dB5KYRdcykTck\n9jqp7zJKnqJZsPvrDXfX4P6IB+yHC9BHlociaI1rCxqBMJAN6dA8FILb03P1\n5T5E\r\n=qdEY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG9Ubsup95Zsf49ajZT253hK7MhhPK0iyfRRJ3gAB5/+AiBUbnSEbnOY03n1zgfLG1Yt+1Q8lvhvULtlUUgG+rYG+g=="}]},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_1.1.7_1579732987695_0.22473176365961067"},"_hasShrinkwrap":false},"1.2.0":{"name":"@arrows/multimethod","version":"1.2.0","main":"index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://caderek.github.io/arrows/packages/multimethod/","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multi","method","immutable","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic","types","ts","typescript"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod","lint":"tslint -c tslint.json 'src/**/*.ts'","typecheck":"tsc --noEmit","benchmark":"ts-node -T benchmark"},"devDependencies":{"@types/jest":"^27.0.2","benchmark":"^2.1.4","benny":"^3.7.0","codecov":"^3.8.3","jest":"^27.2.5","ramda.curry":"^0.26.1","ts-jest":"^27.0.5","tslint":"^6.1.3","tslint-config-prettier":"^1.18.0","typescript":"^4.4.4"},"dependencies":{"@arrows/array":"^1.4.1","@arrows/composition":"^1.2.2","@arrows/error":"^1.0.2","fast-deep-equal":"^3.1.3"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@1.2.0","dist":{"shasum":"58ea7ed32c8a46fe9df64824ad765eb256a33b4d","integrity":"sha512-LHrykveTlJWlZDmCl7k27XsAnR4MMkgv1FByGs7icMFKy50jtV8j43JDB+rEzx64O8A7Zzl9HeTFsbDXvFeFKQ==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-1.2.0.tgz","fileCount":54,"unpackedSize":91268,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHCMaYyrszhSGMAGWQIfEXLpipOUVRg927/o0bVm9vFOAiBNkjPEXsn2nNmGIF+cCdyyoz4E8mqTsJ3l1T3RdVMqdA=="}]},"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_1.2.0_1634101331412_0.34104954194533255"},"_hasShrinkwrap":false},"1.2.1":{"name":"@arrows/multimethod","version":"1.2.1","main":"index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://caderek.github.io/arrows/packages/multimethod/","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multi","method","immutable","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic","types","ts","typescript"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod","lint":"tslint -c tslint.json 'src/**/*.ts'","typecheck":"tsc --noEmit","benchmark":"ts-node -T benchmark"},"devDependencies":{"@types/jest":"^27.0.2","benchmark":"^2.1.4","benny":"^3.7.0","codecov":"^3.8.3","jest":"^27.2.5","ramda.curry":"^0.26.1","ts-jest":"^27.0.5","tslint":"^6.1.3","tslint-config-prettier":"^1.18.0","typescript":"^4.4.4"},"dependencies":{"@arrows/array":"^1.4.1","@arrows/composition":"^1.2.2","@arrows/error":"^1.0.2","fast-deep-equal":"^3.1.3"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@1.2.1","dist":{"shasum":"adda91e8fac20c051ac09d54b7124bf56eb0e510","integrity":"sha512-hr9MFoxzgabQVQatyZY+d+Hytr31O9ObTCEJVK0ezVOG5oc8xHSeYoLhrV6qpRaL7cHTAmb8DSjJZ/yPgWtnmA==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-1.2.1.tgz","fileCount":54,"unpackedSize":91364,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDTIuA4aXC+0EeU9RtyN8rW8PDSWy5sLeHJVz4hiPDEHQIgcohtsZXho2JATDgjFUgO/jDMWLmMMo+l3VdnYxz6u+k="}]},"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_1.2.1_1634103312348_0.39189411139585983"},"_hasShrinkwrap":false},"1.3.0":{"name":"@arrows/multimethod","version":"1.3.0","main":"index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://caderek.github.io/arrows/packages/multimethod/","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multi","method","immutable","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic","types","ts","typescript"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod","lint":"tslint -c tslint.json 'src/**/*.ts'","typecheck":"tsc --noEmit","benchmark":"ts-node -T benchmark"},"devDependencies":{"@types/jest":"^27.0.2","benchmark":"^2.1.4","benny":"^3.7.0","codecov":"^3.8.3","jest":"^27.2.5","ramda.curry":"^0.26.1","ts-jest":"^27.0.5","tslint":"^6.1.3","tslint-config-prettier":"^1.18.0","typescript":"^4.4.4"},"dependencies":{"@arrows/array":"^1.4.1","@arrows/composition":"^1.2.2","@arrows/error":"^1.0.2","fast-deep-equal":"^3.1.3"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@1.3.0","dist":{"shasum":"321ec42202c01f0012433676702e8db1679c6e7c","integrity":"sha512-b4CrALggimBDEY5EtNagpkLCZL0vbpJBLi7jyH+zopM6fKmCMYtukk36jt0zaWUq/NwqmTsSpuTXQ2qzqQzNoA==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-1.3.0.tgz","fileCount":58,"unpackedSize":97401,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDoDyIOCdixrArA/eMTaAuTybzZgTlEHw91obobLoTQ9AiEA3ES0alHEz3KEKYCgltT3bmccaPOlCAkXFe6Q3IFLhv0="}]},"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_1.3.0_1634131194380_0.10661813511766649"},"_hasShrinkwrap":false},"1.4.0":{"name":"@arrows/multimethod","version":"1.4.0","main":"index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://caderek.github.io/arrows/packages/multimethod/","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multi","method","immutable","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic","types","ts","typescript"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod","lint":"tslint -c tslint.json 'src/**/*.ts'","typecheck":"tsc --noEmit","benchmark":"ts-node -T benchmark"},"devDependencies":{"@types/jest":"^27.0.2","benchmark":"^2.1.4","benny":"^3.7.0","codecov":"^3.8.3","jest":"^27.2.5","ramda.curry":"^0.26.1","ts-jest":"^27.0.5","tslint":"^6.1.3","tslint-config-prettier":"^1.18.0","typescript":"^4.4.4"},"dependencies":{"@arrows/array":"^1.4.1","@arrows/composition":"^1.2.2","@arrows/error":"^1.0.2","fast-deep-equal":"^3.1.3"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@1.4.0","dist":{"shasum":"de7bd61e87a9666a2cb26a49ae5277fbd860d53b","integrity":"sha512-JulwVCSojcVksADrjPUhtSoZv1c74uN0LlWkFUZlx2cZgBMvytKgA2JU+ecbPmxWMCQS8Dp7YffzRyxRUNsdYw==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-1.4.0.tgz","fileCount":58,"unpackedSize":114496,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDsvQ11a05CPpHRykzneOuRM+jX9CrAwkRTPkKQxJINPwIhAIGrNllJVHhWCs81IxwUzJIbp/msbMUII5DjvpcgeuSo"}]},"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_1.4.0_1634194345556_0.8539482645515342"},"_hasShrinkwrap":false},"1.4.1":{"name":"@arrows/multimethod","version":"1.4.1","main":"index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://caderek.github.io/arrows/packages/multimethod/","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multi","method","immutable","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic","types","ts","typescript"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod","lint":"tslint -c tslint.json 'src/**/*.ts'","typecheck":"tsc --noEmit","benchmark":"ts-node -T benchmark"},"devDependencies":{"@types/jest":"^27.0.2","benchmark":"^2.1.4","benny":"^3.7.0","codecov":"^3.8.3","jest":"^27.2.5","ramda.curry":"^0.26.1","ts-jest":"^27.0.5","tslint":"^6.1.3","tslint-config-prettier":"^1.18.0","typescript":"^4.4.4"},"dependencies":{"@arrows/array":"^1.4.1","@arrows/composition":"^1.2.2","@arrows/error":"^1.0.2","fast-deep-equal":"^3.1.3"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@1.4.1","dist":{"shasum":"319d0b6f84d22522dd2f4b24f04137b6219f0300","integrity":"sha512-AZnAay0dgPnCJxn3We5uKiB88VL+1ZIF2SjZohLj6vqY2UyvB/sKdDnFP+LZNVsTC5lcnGPmLlRRkAh4sXkXsQ==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-1.4.1.tgz","fileCount":58,"unpackedSize":114523,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA4zSTlwbFObRbQmFfXGIDu75MXIzt8Vi9hgo3DVfWxOAiBXLWcwXCGNmjrPGQP2c/UET1MZ968KVhTcwNaHUwDN/Q=="}]},"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_1.4.1_1634195683159_0.6944225215711677"},"_hasShrinkwrap":false},"2.0.0":{"name":"@arrows/multimethod","version":"2.0.0","main":"index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://caderek.github.io/arrows/packages/multimethod/","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multi","method","immutable","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic","types","ts","typescript"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod","lint":"tslint -c tslint.json 'src/**/*.ts'","typecheck":"tsc --noEmit","benchmark":"ts-node -T benchmark"},"devDependencies":{"@types/jest":"^27.0.2","benchmark":"^2.1.4","benny":"^3.7.0","codecov":"^3.8.3","jest":"^27.2.5","ramda.curry":"^0.26.1","ts-jest":"^27.0.5","tslint":"^6.1.3","tslint-config-prettier":"^1.18.0","typescript":"^4.4.4"},"dependencies":{"@arrows/array":"^1.4.1","@arrows/composition":"^1.2.2","@arrows/error":"^1.0.2","fast-deep-equal":"^3.1.3"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@2.0.0","dist":{"shasum":"adb232a017142a8450159743fa5e2b0cb8a5c003","integrity":"sha512-YnG3TnHBoWQg3kYpZxqeIl/aIdbKN2MkBIknZqwA+P3fum1wuNFiLOZKDv3gbXQGO4h3EID7mR3yUkauxQ9Abg==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-2.0.0.tgz","fileCount":58,"unpackedSize":102828,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCvoT8hgNihnQJahrT9rwY2/LHkiPFaAPP8YbTsFa3wVwIgKZKO+Sh3labOfR63njbt6sFA97ooghlLvHC+gKLeA2E="}]},"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_2.0.0_1634230561659_0.6454173319340657"},"_hasShrinkwrap":false},"2.1.0":{"name":"@arrows/multimethod","version":"2.1.0","main":"index.js","license":"ISC","repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"homepage":"https://caderek.github.io/arrows/packages/multimethod/","description":"Functional multimethod library","keywords":["arrows","functional","fp","multimethod","multimethods","multi","method","immutable","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic","types","ts","typescript"],"author":{"name":"Maciej Cąderek"},"scripts":{"build":"tsc","test":"jest","prep":"node ../../scripts/prepare-lib.js","coverage":"jest --coverage && codecov -F multimethod","lint":"tslint -c tslint.json 'src/**/*.ts'","typecheck":"tsc --noEmit","benchmark":"ts-node -T benchmark"},"devDependencies":{"@types/jest":"^27.0.2","benchmark":"^2.1.4","benny":"^3.7.0","codecov":"^3.8.3","jest":"^27.2.5","ramda.curry":"^0.26.1","ts-jest":"^27.0.5","tslint":"^6.1.3","tslint-config-prettier":"^1.18.0","typescript":"^4.4.4"},"dependencies":{"@arrows/array":"^1.4.1","@arrows/composition":"^1.2.2","@arrows/error":"^1.0.2","fast-deep-equal":"^3.1.3"},"licenseText":"Copyright 2019 Maciej Cąderek\n\nPermission to use, copy, modify, and/or distribute this software\nfor any purpose with or without fee is hereby granted,\nprovided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,\nOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,\nDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\nNEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.","_id":"@arrows/multimethod@2.1.0","dist":{"shasum":"4017b3c25bbd83976496ed4cbc0c44f3340a7e6a","integrity":"sha512-cq/gyBNY/z7wgB8tD6gSKvSzSZh1jJH7LAk9Wx1mcVBzJaFfeDyRpOst+IqBHUZYyWag+UoX7CccirLNrdkWZg==","tarball":"https://registry.npmjs.org/@arrows/multimethod/-/multimethod-2.1.0.tgz","fileCount":63,"unpackedSize":109660,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhzF5kCRA9TVsSAnZWagAAYvwP/R5WliwbdhEVI0J/+XEK\n0EGajBkR1mI3QxdHXOkbMdQQtitRelplWBqkohB/am7KTAfxWJtl35sevKK2\n0V6HAK9iV1/ihuyXMy3v79KlFPKsLGrFW6AkJVI1Q/v9dS52EiZrHS01Yc+G\nsLPl63nGjGn1bfD9jx9Rzc2Xf33+f4BYo4GqKZrgFs15YRfJpoAe8qRXW+7V\nTTrd14HPnADzRm6bN6sKqzuQpCNZDvfu+J6wFKYOwzt5RmH//dYYiAg0+tma\n8Xu0joNn1VikQRLjygz5iuvf5En5E6+gR2H3PT8uFPrtDZCZ4nURX7tBgfXU\nN9Tew439+MuiJ3S7YinkK7Gv1/oL3NOM1zK6PX6mxZhLGlZloVWavszNyl2n\n+0Rg/gR81PDAcpBZRyO+KsSLWKw2dOBrLXNXvgnle4HhBuDCCBnJXxnmIvBF\n2Av5GBrJ87KNxXvvZQRgih4/z3OarR02H3K8EU7D4M2PEou4tIxeykdBkn1N\nPeya+QOfu4dJIUVheO4szG1GF4q9oIRLdknQNSCVge5vkPHeE1m1nVazr2dX\nS73VQRPCnRjMQnENNG3VUYu8MqEit3xDGnL/BlUkNE+I3um6Ve4URlF6nlLP\n9dLpusnLtjOxUIcKUSAA+F85Igqc/N5Gn7/8cVkcclvVYxaXHK8HS/AyXJ2g\nWMaf\r\n=oHIx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFCmGsBPtwo408zDUhbrwTg7LcI6FDRaWq5t7aEkNtEkAiBLkrgJcTDf2IBrxNgG3bfHZKcijBD9rVFHagYW2jliKw=="}]},"_npmUser":{"name":"caderek","email":"maciej.caderek@gmail.com"},"directories":{},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multimethod_2.1.0_1634263565105_0.1831906373374408"},"_hasShrinkwrap":false}},"time":{"created":"2019-09-17T01:06:22.834Z","0.1.0":"2019-09-17T01:06:23.158Z","modified":"2022-04-04T15:35:17.102Z","0.2.0":"2019-09-20T00:55:17.906Z","0.3.0":"2019-09-21T02:48:07.574Z","0.3.1":"2019-09-21T03:04:44.370Z","0.3.2":"2019-09-21T03:40:03.552Z","0.3.3":"2019-09-21T17:14:20.331Z","0.3.4":"2019-09-21T18:06:56.042Z","0.3.5":"2019-09-22T02:17:49.304Z","0.3.6":"2019-09-22T03:05:49.081Z","0.3.7":"2019-09-22T03:26:42.288Z","0.4.0":"2019-09-23T01:05:50.099Z","0.5.0":"2019-09-23T23:34:04.926Z","0.6.0":"2019-09-24T23:06:14.263Z","0.6.1":"2019-09-24T23:08:16.534Z","0.6.2":"2019-09-25T06:45:40.149Z","0.6.3":"2019-09-29T03:01:40.257Z","0.7.0":"2019-10-05T02:17:42.321Z","0.8.0":"2019-10-10T22:38:43.490Z","0.8.1":"2019-10-11T00:05:08.986Z","0.8.3":"2019-10-11T03:49:58.273Z","0.8.4":"2019-10-11T04:07:03.052Z","0.8.5":"2019-10-11T11:31:09.711Z","0.8.6":"2019-10-11T12:22:52.770Z","0.9.0":"2019-10-14T01:24:48.547Z","1.0.0":"2019-10-14T07:36:02.273Z","1.1.0":"2019-10-14T16:05:44.626Z","1.1.1":"2019-10-14T17:28:50.284Z","1.1.2":"2019-10-16T00:32:11.754Z","1.1.3":"2019-10-16T22:13:16.352Z","1.1.4":"2019-10-17T03:22:07.659Z","1.1.5":"2019-10-21T04:32:07.381Z","1.1.6":"2019-10-29T05:37:13.818Z","1.1.7":"2020-01-22T22:43:07.857Z","1.2.0":"2021-10-13T05:02:11.600Z","1.2.1":"2021-10-13T05:35:12.528Z","1.3.0":"2021-10-13T13:19:54.557Z","1.4.0":"2021-10-14T06:52:25.759Z","1.4.1":"2021-10-14T07:14:43.329Z","2.0.0":"2021-10-14T16:56:01.841Z","2.1.0":"2021-10-15T02:06:05.265Z"},"maintainers":[{"name":"caderek","email":"maciej.caderek@gmail.com"}],"license":"ISC","readme":"![arrows - multimethod](https://raw.githubusercontent.com/caderek/arrows/master/assets/arrows-multimethod.svg?sanitize=true)\n\n# @arrows/multimethod\n\n![npm (scoped)](https://img.shields.io/npm/v/@arrows/multimethod)\n![CircleCI](https://img.shields.io/circleci/build/github/caderek/arrows)\n![Codecov](https://img.shields.io/codecov/c/github/caderek/arrows?token=c6adb715d638431786fefe69ca08ab00)\n![npm bundle size (scoped)](https://img.shields.io/bundlephobia/minzip/@arrows/multimethod)\n![GitHub](https://img.shields.io/github/license/caderek/arrows)\n\n## Table of contents\n\n1. [Introduction](#introduction)\n2. [Installation](#installation)\n3. [Usage](#usage)\n   - [Quick example](#quick-example)\n   - [Anatomy of the multimethod](#anatomy-of-the-multimethod)\n     - [Dispatch function](#dispatch-function)\n     - [Case value](#case-value)\n     - [Corresponding value](#corresponding-value)\n   - [Extending multimethods](#extending-multimethods)\n     - [Extending with a single method](#extending-with-a-single-method)\n     - [Extending with multiple methods](#extending-with-multiple-methods)\n   - [Methods priority](#methods-priority)\n   - [Currying](#currying)\n     - [Automatic currying](#automatic-currying)\n     - [Manual currying](#manual-currying)\n   - [Defining types](#defining-types)\n     - [Adding types via interfaces](#adding-types-via-interfaces)\n     - [Adding types via type aliases and intersections](#adding-types-via-type-aliases-and-intersections)\n     - [Adding types using existing types](#adding-types-using-existing-types)\n4. [API reference](#api-reference)\n   - [multi](#multi)\n   - [method](#method)\n   - [fromMulti](#frommulti)\n   - [inspect](#inspect)\n   - [wildcard](#wildcard)\n5. [Articles](#articles)\n6. [License](#license)\n\n## Introduction\n\nMultimethods are functions with superpowers - they can do all that ordinary functions can do, but additionally:\n\n- can choose proper implementation based on the provided arguments, without explicit conditional logic,\n- can be easily extended, without the need to modify the original code,\n- allow you to write clean, concise and decoupled code.\n\nThe multimethod library provides a tiny set of higher-order functions to create powerful, immutable multimethods - in a functional way.\n\nThe library has **built-in type definitions**, which provide an excellent IDE support.\n\n## Installation\n\nVia NPM:\n\n```sh\nnpm i @arrows/multimethod\n```\n\nVia Yarn:\n\n```sh\nyarn add @arrows/multimethod\n```\n\n## Usage\n\n_Note: You can find all the examples from this section (runnable) in the [examples](https://github.com/caderek/arrows/tree/master/packages/multimethod/examples) folder._\n\n### Quick example\n\n```js\nimport { multi, method, fromMulti } from '@arrows/multimethod'\n\n/**\n * Save data in a specified format\n *\n * @param {object} data\n * @param {string} format\n * @returns {void}\n */\nconst save = multi(\n  (data, format) => format, // Custom dispatch function\n\n  method('json', (data, format) => {\n    console.log('Saving as JSON!')\n  }),\n\n  method('html', (data, format) => {\n    console.log('Saving as HTML!')\n  }),\n\n  method((data, format) => {\n    console.log('Default - saving as TXT!')\n  }),\n)\n\nconst data = { name: 'Alice', score: 100 }\n\nsave(data, 'json') // -> \"Saving as JSON!\"\nsave(data, 'html') // -> \"Saving as HTML!\"\nsave(data, 'csv') // -> \"Default - saving as TXT!\"\n```\n\nLet's add a new format, without touching the existing code:\n\n```js\nconst extendedSave = method('csv', (data, format) => {\n  console.log('Saving as CSV!')\n})(save)\n\nextendedSave(data, 'json') // -> \"Saving as JSON!\"\nextendedSave(data, 'html') // -> \"Saving as HTML!\"\nextendedSave(data, 'csv') // -> \"Saving as CSV!\"\nextendedSave(data, 'yaml') // -> \"Default - saving as TXT!\"\n```\n\nWe can also easily extend the original function with multiple methods:\n\n```js\nconst extendedSave2 = fromMulti(\n  method('csv', (data, format) => {\n    console.log('Saving as CSV!')\n  }),\n\n  method('yaml', (data, format) => {\n    console.log('Saving as YAML!')\n  }),\n)(save)\n\nextendedSave2(data, 'json') // -> \"Saving as JSON!\"\nextendedSave2(data, 'html') // -> \"Saving as HTML!\"\nextendedSave2(data, 'csv') // -> \"Saving as CSV!\"\nextendedSave2(data, 'yaml') // -> \"Saving as YAML!\"\n```\n\nIn both cases, the original `save` function remains intact.\n\n---\n\nThat's just a simple example, you can do much more!\n\n### Anatomy of the multimethod\n\n```js\nconst myFunction = multi(\n  optional_dispatch_function,\n\n  method(optional_case_value, corresponding_value),\n\n  ...other_methods,\n)\n```\n\n#### Dispatch function\n\nDispatch function produces values, by which multimethod should be dispatched. The return value of the dispatch function is compared with the case values of registered methods.\n\nThe matching algorithm uses deep strict equality to find the match. There are several exceptions to this rule, they are described in the [case value](#case-value) section.\n\n_Note: The current implementation of the deep strict equal algorithms guarantees the correct results for JSON compatible types, `Map`, `Set`, and `TypedArray`_\n\nIf you do not provide a dispatch function, the default one will be used. Default dispatch function returns all arguments as an array, or in case of single argument - as a standalone value.\n\nFor a collection of useful, ready-to-use dispatch functions, check out the [@arrows/dispatch](https://www.npmjs.com/package/@arrows/dispatch) package.\n\nExamples:\n\n```js\n/**\n * Function with a single argument,\n * default dispatch will return that argument as-is.\n *\n * @param {string} color\n * @returns {string} hex color\n */\nconst colorToHex = multi(\n  method('red', '#ff0000'),\n  method('green', '#00ff00'),\n  method('blue', '#0000ff'),\n)\n\ncolorToHex('green') // -> \"#00ff00\"\n```\n\n```js\n/**\n * Function with multiple arguments,\n * default dispatch will return the array of arguments.\n *\n * Note that the order of the arguments does matter,\n * so if you want the example to work for each combination,\n * you either have to provide methods for reversed arguments\n * or add your custom dispatch function,\n * which returns sorted values (better option).\n *\n * @param {string} colorA\n * @param {string} colorB\n * @returns {string} the resulting color\n */\nconst mixLights = multi(\n  method(['red', 'green'], 'yellow'),\n  method(['red', 'blue'], 'magenta'),\n  method(['green', 'blue'], 'cyan'),\n)\n\nmixLights('red', 'blue') // -> \"magenta\"\nmixLights('blue', 'red') // -> throws an error\n```\n\n```js\n/**\n * Function with a custom dispatch.\n * More flexible version of the previous example.\n *\n * @param {string} colorA\n * @param {string} colorB\n * @returns {string} the resulting color\n */\nconst mixLights = multi(\n  (colorA, colorB) => [colorA, colorB].sort(), // custom dispatch\n  method(['green', 'red'], 'yellow'),\n  method(['blue', 'red'], 'magenta'),\n  method(['blue', 'green'], 'cyan'),\n)\n\nmixLights('red', 'blue') // -> \"magenta\"\nmixLights('blue', 'red') // -> \"magenta\"\n```\n\n```js\nconst store = {\n  add(text) {\n    console.log('todo added')\n  },\n  remove(id) {\n    console.log('todo removed')\n  },\n  toggle(id) {\n    console.log('todo toggled')\n  },\n}\n\n/**\n * Function with a custom dispatch.\n * Dispatch function can produce any arbitrary value.\n *\n * @param {Object} action\n * @param {Object} store\n * @returns {void}\n */\nconst handleAction = multi(\n  (action, store) => action.type, // custom dispatch\n  method('ADD_TODO', (action, store) => store.add(action.text)),\n  method('REMOVE_TODO', (action, store) => store.remove(action.id)),\n  method('TOGGLE_TODO', (action, store) => store.toggle(action.id)),\n)\n\nhandleAction({ type: 'ADD_TODO', text: 'Eat banana.' }, store) // -> \"todo added\"\nhandleAction({ type: 'TOGGLE_TODO', id: 0 }, store) // -> \"todo toggled\"\n```\n\n#### Case value\n\nThe case value is the first argument of the two-argument `method` (if you provide only one argument to the `method`, it will be treated as a default case).\n\nCase value can be anything:\n\n- an ordinary value\n- a constructor / class\n- a regular expression\n- a wildcard (`_`)\n- a predicate function\n- an array containing any of the cases above\n\nYou can mix all case value types in one multimethod.\n\n---\n\n##### Ordinary value\n\nIf the case value is neither a predicate function, regular expression, constructor nor a wildcard, it will be matched against the result of the dispatch function using the deep strict equal algorithm.\n\nExamples:\n\n```js\n/**\n * Function with case values as ordinary values.\n * Values can be any arbitrary nested structure, or a primitive.\n *\n * Matched by the deep strict equal algorithm.\n *\n * @param {Object} player\n * @returns {string} greeting\n */\nconst greet = multi(\n  method({ name: 'John', age: '30' }, 'Hello John!'),\n  method({ name: 'Jane', age: '25' }, 'Hi Jane!'),\n  method('Howdy stranger!'),\n)\n\ngreet({ name: 'John', age: '30' }) // -> \"Hello John!\"\ngreet({ name: 'Jane', age: '25' }) // -> \"Hi Jane!\"\ngreet({ name: 'Jane', age: '40' }) // -> \"Howdy stranger!\"\n```\n\n---\n\n##### Constructor / class\n\nIf the case value is a constructor, it will be matched against the result of the dispatch function by the strict equality (`===`) operator,\nand if that fails — by the `instanceof` operator.\n\nExample:\n\n```js\nclass Email {}\nclass SMS {}\n\n/**\n * Function with case values as constructors.\n * Matched by strict equality check, followed by instanceof check.\n *\n * @param {Object} message\n * @returns {string} status\n */\nconst sendMessage = multi(\n  method(Email, 'Sending email...'),\n  method(SMS, 'Sending SMS...'),\n)\n\nsendMessage(new Email()) // -> \"Sending email...\"\nsendMessage(new SMS()) // -> \"Sending SMS...\"\n\nsendMessage(Email) // -> \"Sending email...\"\nsendMessage(SMS) // -> \"Sending SMS...\"\n```\n\n---\n\n##### Regular Expression\n\nIf the case value is a regular expression it will be matched against the result of the dispatch function by the strict equality (`===`) operator,\nand if that fails — by the `RegExp.prototype.test()` method.\n\nExample:\n\n```js\n/**\n * Function with case values as regular expressions.\n * Matched by RegExp.prototype.test() method\n *\n * @param {RegExp} pattern\n * @returns {string} type\n */\nconst productCategory = multi(\n  method(/wine/, 'wine'),\n  method(/cheese/, 'cheese'),\n  method(/bread/, 'bread'),\n)\n\nproductCategory('blue cheese') // -> \"cheese\"\nproductCategory('red wine') // -> \"wine\"\nproductCategory('white wine from Germany') // -> \"wine\"\nproductCategory('breadcrumbs') // -> \"bread\"\n```\n\n---\n\n##### Wildcard\n\nIf the case value is the wildcard (`_`) it matches any value.\n\nWildcards (especially paired with the predicate functions) are very useful when you need to check the correctness of the arguments, or shuffle them around (when multimethod has multiple valid signatures).\n\nWildcard is functionally equivalent to the predicate function that always return true: `() => true`. It is a bit faster, because it does not execute unnecessary function.\n\nExample:\n\n```js\nconst { multi, method, _ } = require('@arrows/multimethod')\n\n/**\n * Function with case values containing wildcards.\n * These values always resolve to true.\n *\n * @param {any} a\n * @param {any} b\n * @param {any} c\n * @returns {string}\n */\nconst checkArgs = multi(\n  (...args) => args.map((arg) => typeof arg),\n\n  // Skipping check on the first argument\n  method([_, 'function', 'function'], () => {\n    throw new Error('To many functions')\n  }),\n\n  // Skipping check on the second argument\n  method(['object', _, 'function'], () => {\n    throw new Error('Wrong combination')\n  }),\n\n  method((a, b, c) => 'ok'),\n)\n\ncheckArgs(\n  1,\n  () => 2,\n  () => 3,\n) // -> Error: To many functions\ncheckArgs({ id: 1 }, 2, () => 3) // -> Error: Wrong combination\ncheckArgs(1, { id: 2 }, () => 3) // -> \"ok\"\n```\n\n---\n\n##### Predicate function\n\nIf the case value is a function it will be matched against the result of the dispatch function by the strict equality (`===`) operator,\nand if that fails — , and if that fails, the original dispatch function will be ignored,\nand the case value function will be executed with all provided arguments.\n\nCase value function should return a boolean value (or at least the output will be treated as such).\n\nIf the return value is truthy, then we have a match.\n\nExample:\n\n```js\n/**\n * Function with case values as ordinary functions.\n * Case value functions will be executed ignoring dispatch function values,\n * and instead operating on raw arguments.\n *\n * It's like each method has its own dispatch function.\n *\n * It is useful when you can't express dispatch in one common function\n * when each case has some specific rule.\n *\n * @param {Object} req\n * @returns {string | Object} response value\n */\nconst router = multi(\n  method(\n    (req) => ['GET'].includes(req.method) && req.url === '/',\n    'Hello world!',\n  ),\n\n  method(\n    (req) => ['GET', 'POST'].includes(req.method) && req.url === '/users',\n    [{ id: 1, name: 'John' }],\n  ),\n\n  method('Oops!'),\n)\n\nrouter({ method: 'GET', url: '/' }) // -> \"Hello world!\"\nrouter({ method: 'POST', url: '/' }) // -> \"Oops!\"\nrouter({ method: 'GET', url: '/users' }) // -> [{ id: 1, name: \"John\" }]\n```\n\n##### Predicate functions inside an array\n\nPredicate functions inside an array have slightly different behavior, they receive as an argument the value supplied by the dispatch function at the current position. They do not receive all arguments, and do not override dispatch function.\n\nThat way you can fine-tune checks for every argument, going beyond simple equality check.\n\nExample:\n\n```js\nconst { multi, method, _ } = require('@arrows/multimethod')\n\n/* Custom predicates */\nconst not = (y) => (x) => x !== y\nconst notIn = (...args) => (x) => !args.includes(x)\n\n/**\n * Function with case value ans an array\n * that contains predicate functions.\n *\n * Very powerful when paired with wildcards.\n *\n * @param {any} a\n * @param {any} b\n * @returns {string}\n */\nconst checkArgs2 = multi(\n  (a, b) => [typeof a, typeof b],\n\n  method([not('number'), _], () => {\n    throw new Error('First argument should be a number')\n  }),\n\n  method([_, notIn('string', 'number')], () => {\n    throw new Error('Second argument should be a number or a string')\n  }),\n\n  method((a, b) => 'ok'),\n)\n\ncheckArgs2('a', 1) // -> Error: First argument should be a number\ncheckArgs2(1, [2, 3]) // -> Error: Second argument should be a number or a string\ncheckArgs2(1, 2) // -> \"ok\"\ncheckArgs2(5, 'b') // -> \"ok\"\n```\n\n---\n\n##### Array with special cases\n\nIf the case value is an array that contains any of those:\n\n- a constructor / class\n- regular expression\n- wildcard (`_`)\n- predicate function\n\nthen these values will be matched according to their specific algorithms (but only if they are at the first level of the array).\n\nEverything else will be matched using the deep strict equal algorithm.\n\nThis allows you to dispatch multiple arguments using the best fit for every one of them.\n\nExample:\n\n```js\nclass Article {}\nclass Recipe {}\n\nclass PDF {}\nclass HTML {}\n\n/**\n * Function with case values as constructors wrapped in an array.\n *\n * It can be very useful, for example as a trivial alternative\n * to otherwise complex visitor patter.\n *\n * @param {Object} document\n * @param {Object} template\n * @returns {string} embedding description\n */\nconst embed = multi(\n  method([Article, PDF], 'Embedding article inside PDF'),\n  method([Article, HTML], 'Embedding article inside HTML'),\n  method([Recipe, PDF], 'Embedding recipe inside PDF'),\n  method([Recipe, HTML], 'Embedding recipe inside HTML'),\n)\n\nembed(new Article(), new PDF()) // -> \"Embedding article inside PDF\"\nembed(new Recipe(), new HTML()) // -> \"Embedding recipe inside HTML\"\n```\n\nYou may also noticed that I already used this method in the wildcard and the predicate function examples!\n\n---\n\nAdditional example of case values of different types in one multimethod:\n\n```js\nconst VIPs = ['john@vip.com', 'alice@vip.com']\n\n/**\n * Function with case values of different types.\n *\n * @param {Object} msg\n * @returns {string | Object} response value\n */\nconst notify = multi(\n  (msg) => msg.type,\n\n  method(\n    (msg) => msg.type === 'email' && VIPs.includes(msg.email),\n    'Email from VIP!',\n  ),\n\n  method('email', (msg) => `Email from ${msg.email}!`),\n  method('sms', (msg) => `SMS from ${msg.number}!`),\n)\n\nnotify({ type: 'email', email: 'alice@vip.com' }) // -> \"Email from VIP!\"\nnotify({ type: 'email', email: 'joe@ab.com' }) // -> \"Email from joe@ab.com!\"\nnotify({ type: 'sms', number: '123456789' }) // -> \"SMS from 123456789!\"\n```\n\n#### Corresponding value\n\nThe corresponding value is a second argument of the two-argument `method` (or the first and only argument of the default method).\n\nCorresponding value can be either:\n\n1. a function\n2. any other value\n\nIf the corresponding value is a function, it will be executed with passed arguments when its case value is matching.\n\nIf the corresponding value is not a function, it will be returned when its case value is matching.\n\nThere are many examples already, but here's another one:\n\n```js\n/**\n * Classic recursive fibonacci.\n * Do not use it for big numbers.\n *\n * As you can see, recursion works just like with ordinary functions.\n *\n * @param {number} n\n * @returns {number} Nth element of fibonacci sequence\n */\nconst fib = multi(\n  method(0, 0),\n  method(1, 1),\n  method((n) => fib(n - 1) + fib(n - 2)),\n)\n\nfib(0) // -> 0\nfib(1) // -> 1\nfib(9) // -> 34\n```\n\n### Extending multimethods\n\nThe multimethod is immutable, so we can't add/override methods, but we can easily create a new multimethod based on the existing one. In fact, every time we execute the `method` function, we create a new multimethod. This multimethod will have all cases the old one has, plus the new method (you can also \"replace\" a method by using the same caseValue as an existing one).\n\n#### Extending with a single method\n\nYou can create a new multimethod with a new method by executing `method` function and passing a base multimethod as an argument to the second chunk.\n\nExamples:\n\n```js\nconst baseAdd = multi(\n  (a, b) => [typeof a, typeof b],\n  method(['number', 'number'], (a, b) => a + b),\n  method(['string', 'string'], (a, b) => `${a}${b}`),\n)\n\n/**\n * Creating a new multimethod with an additional method\n */\nconst add = method(['bigint', 'bigint'], (a, b) => a + b)(baseAdd)\n\nadd(1, 2) // -> 3\nadd('bat', 'man') // -> \"batman\"\nadd(1n, 2n) // -> 3n\n```\n\n```js\nconst { multi, method } = require('@arrows/multimethod')\n\n/**\n * @param {string} language\n * @returns ${string} greeting\n */\nconst baseGreet = multi(\n  method('ru', 'Привет!'),\n  method('es', '¡Hola!'),\n  method('pl', 'Cześć!'),\n)\n\n/**\n * Creating a new multimethod with added default method\n */\nconst greet = method('Hello!')(baseGreet)\n\ngreet('ru') // -> \"Привет!\"\ngreet('es') // -> \"¡Hola!\"\ngreet('pl') // -> \"Cześć!\"\ngreet('fr') // -> \"Hello!\"\n```\n\n#### Extending with multiple methods\n\nYou can create a new multimethod with multiple new methods either by generic `compose` function, or by using a built-in `fromMulti` function that gives you additional type checks and better error handling.\n\nExamples:\n\n```js\nconst baseHandleHTTPError = multi(\n  method(400, 'Incorrect request.'),\n  method(404, 'The path does not exist.'),\n)\n\n/**\n * Creating a new multimethod with many new methods via generic functional `compose`\n */\nconst handleHTTPError = compose(\n  method(403, 'You do not have access to this resource.'),\n  method(418, 'We are all teapots!'),\n)(baseHandleHTTPError)\n\nhandleHTTPError(400) // -> \"Incorrect request.\"\nhandleHTTPError(418) // -> \"We are all teapots!\"\n```\n\n```js\nconst baseArea = multi(\n  (shape) => shape.type,\n  method('rectangle', (shape) => shape.a * shape.b),\n  method('square', (shape) => shape.a ** 2),\n)\n\n/**\n * Creating a new multimethod with many new methods via `fromMulti` function\n */\nconst area = fromMulti(\n  method('circle', (shape) => Math.PI * shape.r ** 2),\n  method('triangle', (shape) => 0.5 * shape.a * shape.h),\n)(baseArea)\n\narea({ type: 'square', a: 5 }) // -> 25\narea({ type: 'circle', r: 3 }) // -> 28.274333882308138\n```\n\n### Methods priority\n\nWhen you execute the `method` function, the case will be added to the front of the multimethod. In case of the partially applied `method` functions passed to the `multi` and `fromMulti` functions, they will be added from bottom to top - so they will maintain their order in a final multimethod.\n\nOrder of the methods inside a multimethod determines their priority.\n\nExamples:\n\n```js\n/** Priorities for methods inside `evenMoreExtended` function */\n\nconst base = multi(\n  method('a', 'priority: 5'),\n  method('b', 'priority: 6'),\n  method('c', 'priority: 7'),\n)\n\nconst extended = method('d', 'priority: 4')(base)\n\nconst evenMoreExtended = fromMulti(\n  method('e', 'priority: 1'),\n  method('f', 'priority: 2'),\n  method('g', 'priority: 3'),\n)(extended)\n```\n\n```js\n/**\n * Function where the priority does matter\n *\n * @param {number} points\n * @returns {number} grade\n */\nconst baseGradeExam = multi(\n  method((points) => points < 10, 'failed'),\n  method((points) => points <= 15, 'ok'),\n  method((points) => points > 15, 'good'),\n)\n\nconst gradeExam = fromMulti(\n  method((points) => points === 0, 'terrible'),\n  method((points) => points > 20, 'excellent'),\n)(baseGradeExam)\n\ngradeExam(0) // -> 'terrible'\ngradeExam(5) // -> 'failed'\ngradeExam(10) // -> 'ok'\ngradeExam(15) // -> 'ok'\ngradeExam(20) // -> 'good'\ngradeExam(25) // -> 'excellent'\n```\n\n### Currying\n\nMultimethods support automatic currying and manual currying/chunking, based on dispatch function.\n\n#### Automatic currying\n\nMultimethods work with all generic `curry` functions. Currying is based on the length of the dispatch function, so you should provide an explicit dispatch (default dispatch is a variadic function, so its length is `0`).\n\nExample:\n\n```js\nimport curry from '@arrows/composition/curry'\nimport { multi, method } from '@arrows/multimethod'\n\n/**\n * Currying with a generic `curry` function.\n * Explicit dispatch function (length: 2).\n *\n * Note that you can still use non-functions as corresponding values.\n *\n * @param {string} type\n * @param {string} source\n * @returns {string} info\n */\nconst play = multi(\n  (type, source) => type,\n  method('audio', (type, source) => `Playing audio from: ${source}`),\n  method('video', (type, source) => `Playing video from: ${source}`),\n)\n\nconst curriedPlay = curry(play)\n\nconst playAudio = curriedPlay('audio')\nconst playVideo = curriedPlay('video')\n\nplayAudio('songs.io/123') // -> \"Playing audio from: songs.io/123\"\nplayVideo('movies.com/123') // -> \"Playing video from: movies.com/123\"\n```\n\n#### Manual currying\n\nIf you prefer manual currying, or you already have functions that use manual currying and want to use them as methods, you can easily do that with the multimethod. Just like with automatic currying, execution is based on the dispatch function.\n\nExamples:\n\n```js\nconst mapArray = (fn) => (arr) => arr.map(fn)\nconst mapString = (fn) => (str) => [...str].map(fn)\n\n/**\n * Manually curried function - each chunk has one argument.\n */\n\nconst map = multi(\n  (fn) => (val) => (Array.isArray(val) ? 'array' : typeof val),\n  method('array', mapArray),\n  method('string', mapString),\n)\n\nmap((char) => char.charCodeAt(0))('Hello') // -> [72, 101, 108, 108, 111]\nmap((item) => item * 2)([1, 2, 3]) // -> [2, 4, 6]\n```\n\n```js\n/**\n * Manually chunked function - chunks can have more than one argument,\n * they can also have default values.\n *\n * Note that you can still use non-functions as corresponding values.\n */\nconst checkGrammar = multi(\n  (config = {}) => (text, language) => language,\n  method('en', 'Checking English grammar'),\n  method('pl', 'Checking Polish grammar'),\n)\n\nconst checkTypos = checkGrammar({ typos: true })\n\ncheckTypos('mistkae', 'en') // -> \"Checking English grammar\"\ncheckTypos('błąt', 'pl') // -> \"Checking Polish grammar\"\n```\n\n---\n\n_Note: To make it possible, the `multi` function counts chunks (segments) when multimethod is created, by executing dispatch function without arguments until a returned value is not a function or error is thrown. This comes with one limitation - **you should not use any argument-based calculations as default values**. If you do that, the library won't be able to correctly count segments._\n\n_For example, this will not work as intended:_\n\n```js\n/**\n * This won't work, because of the default value calculation\n * based on the `a` argument.\n */\nconst fn = multi(\n  (a) => (b = a.foo) => a,\n  method(/* some case */),\n  method(/* some case */),\n)\n```\n\n---\n\n_Note: If you use custom caseValue functions when using manual currying, arguments for these caseValue functions are automatically flattened._\n\n_For example:_\n\n```js\n/**\n * Even though we don't use dispatch value, we have to add\n * a dispatch function to inform the multimethod of how to handle this.\n *\n * As you can see, you don't have to curry a caseValue function.\n */\nconst fn = multi(\n  a => b => c => null,\n  method((a, b, c) => /* some check */, a => b => c => /* some return */),\n  method((a, b, c) => /* some check */, a => b => c => /* some return */),\n)\n```\n\n### Defining types\n\nIf you use TypeScript, you will probably want to make your multimethods type-safe. While the dynamic nature of the multimethods makes it hard for the compiler to guarantee that multimethod is put together correctly, you can still ensure correct usage of the multimethod by defining its interface.\n\nTypeScript supports function overloading defined via interfaces (or type alias equivalents) and intersections.\n\n### Adding types via interfaces\n\nCreating a new multimethod from scratch:\n\n```ts\nimport { method, multi, Multi } from '@arrows/multimethod'\n\n/**\n * Multimethod type defined using interface.\n *\n * Extending `Multi` type guarantees that the multimethod will\n * be recognized correctly when extended by `fromMulti` function.\n */\ninterface Add extends Multi {\n  (x: number, y: number): number\n  (x: string, y: string): string\n}\n\nconst add: Add = multi(\n  <T>(x: T, x: T): T => [x, y],\n  method([Number, Number], (x: number, y: number): number => x + y),\n  method([String, String], (x: string, y: string): string => `${x}${y}`),\n)\n\n/*\nadd(3, 3) // -> 6\nadd('foo', 'bar') // -> \"foobar\"\nadd(5, [1, 2]) // compiler error\n*/\n\nexport { Add }\nexport default add\n```\n\nCreating a new multimethod from an existing one:\n\n```ts\nimport { fromMulti, method } from '@arrows/multimethod'\nimport baseAdd, { Add as BaseAdd } from './add'\n\n/**\n * Multimethod type defined by extending existing interface.\n */\ninterface Add extends BaseAdd {\n  (x: bigint, y: bigint): bigint\n}\n\nconst add: Add = fromMulti(\n  method([BigInt, BigInt], (x: bigint, y: bigint) => x + y),\n)(baseAdd)\n\nadd(3, 3) // -> 6\nadd('foo', 'bar') // -> \"foobar\"\nadd(3n, 5n) // -> 8n\nadd(3, [1, 2, 3]) // compiler error\n```\n\n### Adding types via type aliases and intersections\n\nCreating a new multimethod from scratch:\n\n```ts\nimport { method, multi, Multi } from '@arrows/multimethod'\n\n/**\n * Multimethod type defined using interface.\n *\n * Using intersection with `Multi` type guarantees that the multimethod\n * will be recognized correctly when extended by `fromMulti` function.\n */\ntype Add = Multi & {\n  (x: number, y: number): number\n  (x: string, y: string): string\n}\n\nconst add: Add = multi(\n  <T>(x: T, x: T): T => [x, y],\n  method([Number, Number], (x: number, y: number): number => x + y),\n  method([String, String], (x: string, y: string): string => `${x}${y}`),\n)\n\n/*\nadd(3, 3) // -> 6\nadd('foo', 'bar') // -> \"foobar\"\nadd(5, [1, 2]) // compiler error\n*/\n\nexport { Add }\nexport default add\n```\n\nCreating a new multimethod from an existing one:\n\n```ts\nimport { fromMulti, method } from '@arrows/multimethod'\nimport baseAdd, { Add as BaseAdd } from './add'\n\n/**\n * Multimethod type defined by intersection with existing type.\n */\ntype Add = BaseAdd & {\n  (x: bigint, y: bigint): bigint\n}\n\nconst add: Add = fromMulti(\n  method([BigInt, BigInt], (x: bigint, y: bigint) => x + y),\n)(baseAdd)\n\nadd(3, 3) // -> 6\nadd('foo', 'bar') // -> \"foobar\"\nadd(3n, 5n) // -> 8n\nadd(3, [1, 2, 3]) // compiler error\n```\n\n#### Adding types using existing types\n\nUsually, the best way to create a multimethod is to define component functions and their type aliases first - that way you can use a multimethod or a raw function - according to what fits best.\nDoing so you can also reuse type aliases for specific components for multimethod type.\n\nCreating a new multimethod from scratch:\n\n```ts\nimport { method, multi, Multi } from '@arrows/multimethod'\n\n/**\n * Component functions with type aliases.\n */\ntype AddNumbers = (x: number, y: number) => number\nconst addNumbers: AddNumbers = (x, y) => x + y\n\ntype AddStrings = (x: string, y: string) => string\nconst addStrings: AddStrings = (x, y) => `${x}${y}`\n\n/**\n * Multimethod type defined by intersection of existing types.\n *\n * Using intersection with `Multi` type guarantees that the multimethod\n * will be recognized correctly when extended by `fromMulti` function.\n */\ntype Add = Multi & AddNumbers & AddStrings\n\nconst add: Add = multi(\n  <T>(x: T, y: T): T => [x, y],\n  method([Number, Number], addNumbers),\n  method([String, String], addStrings),\n)\n\n/*\nadd(3, 3) // -> 6\nadd('foo', 'bar') // -> \"foobar\"\nadd(3, [1, 2, 3]) // compiler error\n*/\n\nexport { addNumbers, addStrings, Add }\nexport default add\n```\n\nCreating a new multimethod from an existing one:\n\n```ts\nimport { fromMulti, method } from '@arrows/multimethod'\nimport baseAdd, { Add as BaseAdd } from './add'\n\ntype AddBigInts = (x: bigint, y: bigint) => bigint\nconst addBigInts: AddBigInts = (x, y) => x + y\n\n/**\n * Multimethod type defined by intersection of existing types.\n */\ntype Add = BaseAdd & AddBigInts\n\n// prettier-ignore\nconst add: Add = fromMulti(\n  method([BigInt, BigInt], addBigInts),\n)(baseAdd)\n\nadd(3, 3) // -> 6\nadd('foo', 'bar') // -> \"foobar\"\nadd(3n, 5n) // -> 8n\nadd(3, [1, 2, 3]) // compiler error\n```\n\n## API reference\n\n### multi\n\nCreates multimethod - a function that can dynamically choose proper implementation,\nbased on arbitrary dispatch of its arguments.\n\n#### Parameters\n\n- `first` - The first argument can be either a dispatch function or a partially-applied method\n- `methods` - Arbitrary number of partially applied methods (optional)\n\n#### Returns\n\n- Returns an immutable multimethod that can be used as an ordinary function\n\n#### Interface\n\n```\n\n(dispatch | method, method?, method?, ..., method?) => multimethod\n\n```\n\n#### Examples\n\nCreate a multimethod with a custom dispatch and no methods:\n\n```javascript\nconst fn = multi((x) => typeof x)\n\nfn('foo') // -> throws an Error (because of no matching methods), but is useful as a base for extensions\n```\n\nCreate a multimethod with the default dispatch and some methods:\n\n```javascript\nconst makeSound = multi(\n  method('cat', () => 'Meow!'),\n  method('dog', () => 'Woof!'),\n  method(() => 'Hello!'), // default method (ony one argument provided)\n)\n\nmakeSound('cat') // -> 'Meow!'\nmakeSound('dog') // -> 'Woof!'\nmakeSound('cow') // -> 'Hello!' (that's a rather unusual cow)\n```\n\nCreate a multimethod with a custom dispatch and some methods:\n\n```javascript\nconst multiply = multi(\n  (multiplier, x) => [typeof multiplier, typeof x],\n  method(['number', 'number'], (multiplier, x) => x * multiplier),\n  method(['number', 'string'], (multiplier, x) => x.repeat(multiplier)),\n)\n\nmultiply(2, 5) // -> 10\nmultiply(3, 'Beetlejuice! ') // -> 'Beetlejuice! Beetlejuice! Beetlejuice! ' (do not read it out loud)\nmultiply(2, [1, 2, 3]) // -> throws an Error (no match and no default method for these arguments)\n```\n\n---\n\n### method\n\nAdds a method to a multimethod\n\n#### Parameters\n\n- `caseValue` - The value to which the result of dispatch function is matched\n\n  - if function, then is executed with input arguments (always unchunked, even if dispatch is chunked,\n  - if constructor, then is matched by reference value first, if that fails, by instanceof operator.\n\n- `correspondingValue` - The value that function should return on matching case\n\n  - if function then is executed with input arguments (chunked or unchunked, depending on the dispatch function)\n\n- `multimethod` - Multimethod on which you want to base the new multimethod\n\n#### Returns\n\n- New multimethod (the base one is unchanged)\n\n#### Interface\n\n```\n(caseValue?, correspondingValue) => (multimethod) => new_multimethod\n```\n\n#### Examples\n\nDefault method as a function:\n\n```javascript\nconst sayHello = multi((user) => user.lang)\n\nconst sayHelloWithDefault = method((user) => `Hello ${user.name}!`)(sayHello)\n\nsayHelloWithDefault({ name: 'Alejandro', lang: 'es' }) // -> 'Hello Alejandro!'\n```\n\nDefault method as other value:\n\n```javascript\nconst sayHello = multi((user) => user.lang)\n\nconst sayHelloWithDefault = method('Hello!')(sayHello)\n\nsayHelloWithDefault({ name: 'Alejandro', lang: 'es' }) // -> 'Hello!'\n```\n\nMethod with caseValue as an ordinary value and correspondingValue as a function:\n\n```javascript\nconst add = multi((a, b) => [typeof a, typeof b])\n\nconst extendedAdd = method(['number', 'number'], (a, b) => a + b)(add)\n\nextendedAdd(1, 2) // -> 3\n```\n\nMethod with caseValue and correspondingValue as ordinary values:\n\n```javascript\nconst getHexColor = multi((color) => color)\n\nconst extendedGetHexColor = method('red', '#FF0000')(getHexColor)\n\nextendedGetHexColor('red') // -> '#FF0000'\n```\n\nMethod with caseValue as a function and correspondingValue as an ordinary value:\n\n```javascript\nclass Enemy {}\nconst is = (prototype) => (value) => value instanceof prototype\n\nconst greet = multi((person) => person)\n\n// Matches, when case function executed with initial arguments returns truthy value\nconst extendedGreet = method(is(Enemy), 'Goodbye!')(greet)\n\nextendedGreet(new Enemy()) // -> 'Goodbye!'\n```\n\nMethod with caseValue and correspondingValue as functions:\n\n```javascript\nclass Car {\n  drive() {\n    return 'driving...'\n  }\n}\n\nclass Human {\n  walk() {\n    return 'walking...'\n  }\n}\n\nconst is = (prototype) => (value) => value instanceof prototype\n\nconst go = multi(\n  method(is(Car), (entity) => entity.drive()), // lets add one case to original multimethod\n)\n\nconst extendedGo = method(is(Human), (entity) => entity.walk())(go)\n\nextendedGo(new Car()) // -> 'driving...'\nextendedGo(new Human()) // -> 'walking...'\n```\n\nMethod with caseValue as a constructor:\n\n```javascript\nclass Email {}\nclass SMS {}\n\nconst send = multi(\n  method(Email, 'Sending email...'), // lets add one case to the original multimethod\n)\n\nconst extendedSend = method(SMS, 'Sending SMS...')(send)\n\nextendedSend(new Email()) // -> 'Sending email...'\nextendedSend(new SMS()) // -> 'Sending SMS...'\n```\n\n---\n\n### fromMulti\n\nCreates a new multimethods from the existing ones, convenient for adding multiple methods.\n\n#### Parameters\n\n- `methods` - Arbitrary number of partially applied methods\n- `multimethod` - Multimethod on which you want to base a new multimethod\n\n#### Returns\n\n- A new multimethod (the base one is unchanged)\n\n#### Interface\n\n```\n(method, method?, ..., method?) => (multimethod) => new_multimethod\n```\n\n#### Example\n\nCreate a new multimethod using an existing one as a base:\n\n```javascript\nconst add = multi(\n  (a, b) => [typeof a, typeof b],\n  method(['number', 'number'], (a, b) => a + b),\n  method(['string', 'string'], (a, b) => `${a}${b}`),\n)\n\nconst extendedAdd = fromMulti(\n  method(['bigint', 'bigint'], (a, b) => a + b),\n  method(['number', 'bigint'], (a, b) => BigInt(a) + b),\n  method(['bigint', 'number'], (a, b) => a + BigInt(b)),\n)(add)\n\nextendedAdd(1, 2) // -> 3\nextendedAdd('foo', 'bar') // -> 'foobar'\nextendedAdd(2n, 3n) // -> 5n\nextendedAdd(5, 5n) // -> 10n\nextendedAdd(9n, 2) // -> 11n\n```\n\n---\n\n### inspect\n\nRetrieves the object with building blocks of the multimethod.\n\n_Note: You should not mutate any of its values._\n\n#### Parameters\n\n- `multimethod` - Multimethod which you want to inspect\n\n#### Returns\n\n- Inspection object with the following getter:\n  - `dispatch` - shows the dispatch function\n  - `entries` - shows all `[caseValue, correspondingValue]` entries\n  - `cases` - shows all `caseValue` items\n  - `values` - shows all `correspondingValue` items\n\n#### Interface\n\n```\n(multimethod) => inspection_object\n```\n\n#### Example\n\n```javascript\nconst { multi, method, inspect, _ } = require('@arrows/multimethod')\n\nconst mixColors = multi(\n  method(['yellow', 'red'], 'orange'),\n  method(['black', _], 'black'),\n  method(['red', 'blue'], 'purple'),\n  method('no idea'),\n)\n\nconst inspectionObject = inspect(mixColors)\n\nconsole.dir(inspectionObject.entries, { depth: null })\n\n/* Result:\n\n[\n  [ { type: 'data', value: [ 'yellow', 'red' ] }, 'orange' ],\n  [\n    {\n      type: 'mixed',\n      values: [ { type: 'data', value: 'black' }, { type: 'wildcard' } ]\n    },\n    'black'\n  ],\n  [ { type: 'data', value: [ 'red', 'blue' ] }, 'purple' ],\n  [ { type: 'default' }, 'no idea' ]\n]\n\n*/\n\nconsole.dir(inspectionObject.dispatch, { depth: null })\n\n/* Result:\n\n[Function: implicitDispatch]\n\n*/\n```\n\n---\n\n### wildcard\n\nSpecial placeholder that matches any value.\n\n#### Example\n\n```javascript\nconst { multi, method, _ } = require('@arrows/multimethod')\n\nconst hasCallback = multi(\n  (a, b) => [typeof a, typeof b],\n  method(['function', __], true),\n  method([__, 'function'], true),\n  method(false),\n)\n\nhasCallback(() => {}, 'a') // -> true\nhasCallback('b', () => {}) // -> true\nhasCallback(\n  () => {},\n  () => {},\n) // -> true\nhasCallback(3, 4) // -> false\n```\n\n## Articles\n\n- _Polymorphism without objects via multimethods_ by Yehonathan Sharvit - [link](https://blog.klipse.tech/javascript/2021/10/03/multimethod.html)\n\n## License\n\nProject is under open, non-restrictive [ISC license](LICENSE).\n","readmeFilename":"README.md","description":"Functional multimethod library","homepage":"https://caderek.github.io/arrows/packages/multimethod/","keywords":["arrows","functional","fp","multimethod","multimethods","multi","method","immutable","multiple dispatch","dynamic dispatch","polymorphic","function","functions","generic","types","ts","typescript"],"repository":{"type":"git","url":"https://github.com/caderek/arrows/tree/master/packages/multimethod"},"author":{"name":"Maciej Cąderek"}}