Repository: char0n/ramda-adjunct
Pull request #1463 (2020-05-23 15:41:44)

feat(toInteger32): add toInteger32
#783

OliverRadini: I believe all the requested changes are now made and commited

Patch:
diff --git a/package-lock.json b/package-lock.json
index 6744757bc2..1045475a6e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -4389,29 +4389,29 @@
       }
     },
     "@definitelytyped/header-parser": {
-      "version": "0.0.36",
-      "resolved": "https://registry.npmjs.org/@definitelytyped/header-parser/-/header-parser-0.0.36.tgz",
-      "integrity": "sha512-rzlKeKfNLa+uAvEn64bhSc/ULbOUFepxcpV8WcobVH00Jiknu3gPOTOSnT9CgCLNtKYrcOCUTWmXkt0nV02t7g==",
+      "version": "0.0.39",
+      "resolved": "https://registry.npmjs.org/@definitelytyped/header-parser/-/header-parser-0.0.39.tgz",
+      "integrity": "sha512-AbE+eDfG/8kIyy182xbHVfqR4Ee9FV8PfVrZZaZfpiivQJcI/kch3zih7sFIVJAiNcynxkyClKgp93Kgf4/5+w==",
       "dev": true,
       "requires": {
-        "@definitelytyped/typescript-versions": "^0.0.36",
+        "@definitelytyped/typescript-versions": "^0.0.39",
         "@types/parsimmon": "^1.10.1",
         "parsimmon": "^1.13.0"
       }
     },
     "@definitelytyped/typescript-versions": {
-      "version": "0.0.36",
-      "resolved": "https://registry.npmjs.org/@definitelytyped/typescript-versions/-/typescript-versions-0.0.36.tgz",
-      "integrity": "sha512-ci+468ddCIOaAUGVJvVQ6RdHRC6qfkvQgZ4CuITyZJx0n6qrUU+iEqXIuoIb9Nq9yuhHu6UwK9kg5OXCfahFog==",
+      "version": "0.0.39",
+      "resolved": "https://registry.npmjs.org/@definitelytyped/typescript-versions/-/typescript-versions-0.0.39.tgz",
+      "integrity": "sha512-lUO5E7D57zvD+F/JfRswNXmMI39dtx0r+dVQ46k2k/mPazvFBGT+WLwXIVoWK5gDy4dUoKvXtgfyMvTdasYcOA==",
       "dev": true
     },
     "@definitelytyped/utils": {
-      "version": "0.0.36",
-      "resolved": "https://registry.npmjs.org/@definitelytyped/utils/-/utils-0.0.36.tgz",
-      "integrity": "sha512-gBmPS02uONxbQw1uV5TE4O+HmRNrQSLSjKPAYfsRn2Mnan4mCZAXrdfp3Zburj0xQyEtCt0SEDe2Px3txZJOKQ==",
+      "version": "0.0.39",
+      "resolved": "https://registry.npmjs.org/@definitelytyped/utils/-/utils-0.0.39.tgz",
+      "integrity": "sha512-ErdxMYvT3xGqoFLHFYwLAJ4o0I2tSAc6vz4l/0QG3DEv/RR9vS886DnpBqtYDmOhSh6EkjrgIh6IK2yJdL7xNA==",
       "dev": true,
       "requires": {
-        "@definitelytyped/typescript-versions": "^0.0.36",
+        "@definitelytyped/typescript-versions": "^0.0.39",
         "@types/node": "^12.12.29",
         "charm": "^1.0.2",
         "fs-extra": "^8.1.0",
@@ -4623,6 +4623,12 @@
       "integrity": "sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==",
       "dev": true
     },
+    "@types/json5": {
+      "version": "0.0.29",
+      "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+      "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=",
+      "dev": true
+    },
     "@types/minimist": {
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.0.tgz",
@@ -4630,9 +4636,9 @@
       "dev": true
     },
     "@types/node": {
-      "version": "12.12.43",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.43.tgz",
-      "integrity": "sha512-KUyZdkGCnVPuXfsKmDUu2XLui65LZIJ2s0M57noy5e+ixUT2oK33ep7zlvgzI8LElcWqbf8AR+o/3GqAPac2zA==",
+      "version": "12.12.47",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.47.tgz",
+      "integrity": "sha512-yzBInQFhdY8kaZmqoL2+3U5dSTMrKaYcb561VU+lDzAYvqt+2lojvBEy+hmpSNuXnPTx7m9+04CzWYOUqWME2A==",
       "dev": true
     },
     "@types/normalize-package-data": {
@@ -6295,17 +6301,6 @@
       "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
       "dev": true
     },
-    "cliui": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
-      "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
-      "dev": true,
-      "requires": {
-        "string-width": "^2.1.1",
-        "strip-ansi": "^4.0.0",
-        "wrap-ansi": "^2.0.0"
-      }
-    },
     "code-point-at": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
@@ -8381,9 +8376,9 @@
       "dev": true
     },
     "dts-critic": {
-      "version": "3.2.4",
-      "resolved": "https://registry.npmjs.org/dts-critic/-/dts-critic-3.2.4.tgz",
-      "integrity": "sha512-KdW/qVKydHF8HkFBe3hNqXRIDUwSqioTOxVAUS7tbo0++vlRNq7wluCfTgi5J26bS1L4ybJvN22BBVRR5Cp2wQ==",
+      "version": "3.2.7",
+      "resolved": "https://registry.npmjs.org/dts-critic/-/dts-critic-3.2.7.tgz",
+      "integrity": "sha512-b0oUT92CJ/ZPAqvEJ5XzATqMVbLcZEhO00GQByBoJHQ8zhFDW/zVcJ2TtJkkB+VKGWKeAV7hhmjn1Oyot0jz8w==",
       "dev": true,
       "requires": {
         "@definitelytyped/header-parser": "0.0.34",
@@ -8391,7 +8386,7 @@
         "rimraf": "^3.0.2",
         "semver": "^6.2.0",
         "tmp": "^0.2.1",
-        "yargs": "^12.0.5"
+        "yargs": "^15.3.1"
       },
       "dependencies": {
         "@definitelytyped/header-parser": {
@@ -8411,55 +8406,6 @@
           "integrity": "sha512-7IqWcbHKYbfY8Lt7AigXDa29cbz3gynzBHMjwMUCeLnex8D682M6OW8uBLouvVHCr+YENL58tQB3dn0Zos8mFQ==",
           "dev": true
         },
-        "camelcase": {
-          "version": "5.3.1",
-          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
-          "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
-          "dev": true
-        },
-        "find-up": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
-          "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
-          "dev": true,
-          "requires": {
-            "locate-path": "^3.0.0"
-          }
-        },
-        "locate-path": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
-          "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
-          "dev": true,
-          "requires": {
-            "p-locate": "^3.0.0",
-            "path-exists": "^3.0.0"
-          }
-        },
-        "p-limit": {
-          "version": "2.3.0",
-          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
-          "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
-          "dev": true,
-          "requires": {
-            "p-try": "^2.0.0"
-          }
-        },
-        "p-locate": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
-          "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
-          "dev": true,
-          "requires": {
-            "p-limit": "^2.0.0"
-          }
-        },
-        "p-try": {
-          "version": "2.2.0",
-          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
-          "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
-          "dev": true
-        },
         "semver": {
           "version": "6.3.0",
           "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
@@ -8474,49 +8420,19 @@
           "requires": {
             "rimraf": "^3.0.0"
           }
-        },
-        "yargs": {
-          "version": "12.0.5",
-          "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz",
-          "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==",
-          "dev": true,
-          "requires": {
-            "cliui": "^4.0.0",
-            "decamelize": "^1.2.0",
-            "find-up": "^3.0.0",
-            "get-caller-file": "^1.0.1",
-            "os-locale": "^3.0.0",
-            "require-directory": "^2.1.1",
-            "require-main-filename": "^1.0.1",
-            "set-blocking": "^2.0.0",
-            "string-width": "^2.0.0",
-            "which-module": "^2.0.0",
-            "y18n": "^3.2.1 || ^4.0.0",
-            "yargs-parser": "^11.1.1"
-          }
-        },
-        "yargs-parser": {
-          "version": "11.1.1",
-          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz",
-          "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==",
-          "dev": true,
-          "requires": {
-            "camelcase": "^5.0.0",
-            "decamelize": "^1.2.0"
-          }
         }
       }
     },
     "dtslint": {
-      "version": "3.6.10",
-      "resolved": "https://registry.npmjs.org/dtslint/-/dtslint-3.6.10.tgz",
-      "integrity": "sha512-QGSX0nNBLWnw3N9MJKJ8OtmU/r439bwS53RF+vnM4Vt62vCDGQa2yKEBMWpnTS2Few38i7y+UgrfL2OAPepkUw==",
+      "version": "3.6.12",
+      "resolved": "https://registry.npmjs.org/dtslint/-/dtslint-3.6.12.tgz",
+      "integrity": "sha512-fNqUqLcKu6up8rT7bb6rnfUCPDYTUButrHEsp4uENlsYiQJETaB+cM9eltYcUhiHtBoULEZrnl081yRvNUPcGA==",
       "dev": true,
       "requires": {
-        "@definitelytyped/header-parser": "=0.0.36",
-        "@definitelytyped/typescript-versions": "=0.0.36",
-        "@definitelytyped/utils": "=0.0.36",
-        "dts-critic": "=3.2.4",
+        "@definitelytyped/header-parser": "=0.0.39",
+        "@definitelytyped/typescript-versions": "=0.0.39",
+        "@definitelytyped/utils": "=0.0.39",
+        "dts-critic": "=3.2.7",
         "fs-extra": "^6.0.1",
         "json-stable-stringify": "^1.0.1",
         "strip-json-comments": "^2.0.1",
@@ -9032,14 +8948,14 @@
       }
     },
     "eslint-config-airbnb-base": {
-      "version": "14.1.0",
-      "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.1.0.tgz",
-      "integrity": "sha512-+XCcfGyCnbzOnktDVhwsCAx+9DmrzEmuwxyHUJpw+kqBVT744OUBrB09khgFKlK1lshVww6qXGsYPZpavoNjJw==",
+      "version": "14.2.0",
+      "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.0.tgz",
+      "integrity": "sha512-Snswd5oC6nJaevs3nZoLSTvGJBvzTfnBqOIArkf3cbyTyq9UD79wOk8s+RiL6bhca0p/eRO6veczhf6A/7Jy8Q==",
       "dev": true,
       "requires": {
         "confusing-browser-globals": "^1.0.9",
         "object.assign": "^4.1.0",
-        "object.entries": "^1.1.1"
+        "object.entries": "^1.1.2"
       }
     },
     "eslint-config-prettier": {
@@ -9070,9 +8986,9 @@
       },
       "dependencies": {
         "resolve": {
-          "version": "1.15.1",
-          "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz",
-          "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==",
+          "version": "1.17.0",
+          "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
+          "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
           "dev": true,
           "requires": {
             "path-parse": "^1.0.6"
@@ -9091,23 +9007,24 @@
       }
     },
     "eslint-plugin-import": {
-      "version": "2.20.2",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz",
-      "integrity": "sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg==",
+      "version": "2.21.2",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.21.2.tgz",
+      "integrity": "sha512-FEmxeGI6yaz+SnEB6YgNHlQK1Bs2DKLM+YF+vuTk5H8J9CLbJLtlPvRFgZZ2+sXiKAlN5dpdlrWOjK8ZoZJpQA==",
       "dev": true,
       "requires": {
-        "array-includes": "^3.0.3",
-        "array.prototype.flat": "^1.2.1",
+        "array-includes": "^3.1.1",
+        "array.prototype.flat": "^1.2.3",
         "contains-path": "^0.1.0",
         "debug": "^2.6.9",
         "doctrine": "1.5.0",
-        "eslint-import-resolver-node": "^0.3.2",
-        "eslint-module-utils": "^2.4.1",
+        "eslint-import-resolver-node": "^0.3.3",
+        "eslint-module-utils": "^2.6.0",
         "has": "^1.0.3",
         "minimatch": "^3.0.4",
-        "object.values": "^1.1.0",
+        "object.values": "^1.1.1",
         "read-pkg-up": "^2.0.0",
-        "resolve": "^1.12.0"
+        "resolve": "^1.17.0",
+        "tsconfig-paths": "^3.9.0"
       },
       "dependencies": {
         "doctrine": {
@@ -9178,9 +9095,9 @@
           }
         },
         "resolve": {
-          "version": "1.15.1",
-          "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz",
-          "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==",
+          "version": "1.17.0",
+          "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
+          "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
           "dev": true,
           "requires": {
             "path-parse": "^1.0.6"
@@ -10734,12 +10651,6 @@
       "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==",
       "dev": true
     },
-    "get-caller-file": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
-      "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
-      "dev": true
-    },
     "get-func-name": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
@@ -14911,9 +14822,9 @@
       }
     },
     "mocha-junit-reporter": {
-      "version": "1.23.3",
-      "resolved": "https://registry.npmjs.org/mocha-junit-reporter/-/mocha-junit-reporter-1.23.3.tgz",
-      "integrity": "sha512-ed8LqbRj1RxZfjt/oC9t12sfrWsjZ3gNnbhV1nuj9R/Jb5/P3Xb4duv2eCfCDMYH+fEu0mqca7m4wsiVjsxsvA==",
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/mocha-junit-reporter/-/mocha-junit-reporter-2.0.0.tgz",
+      "integrity": "sha512-20HoWh2HEfhqmigfXOKUhZQyX23JImskc37ZOhIjBKoBEsb+4cAFRJpAVhFpnvsztLklW/gFVzsrobjLwmX4lA==",
       "dev": true,
       "requires": {
         "debug": "^2.2.0",
@@ -15459,15 +15370,47 @@
       }
     },
     "object.entries": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.1.tgz",
-      "integrity": "sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ==",
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz",
+      "integrity": "sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==",
       "dev": true,
       "requires": {
         "define-properties": "^1.1.3",
-        "es-abstract": "^1.17.0-next.1",
-        "function-bind": "^1.1.1",
+        "es-abstract": "^1.17.5",
         "has": "^1.0.3"
+      },
+      "dependencies": {
+        "es-abstract": {
+          "version": "1.17.5",
+          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
+          "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
+          "dev": true,
+          "requires": {
+            "es-to-primitive": "^1.2.1",
+            "function-bind": "^1.1.1",
+            "has": "^1.0.3",
+            "has-symbols": "^1.0.1",
+            "is-callable": "^1.1.5",
+            "is-regex": "^1.0.5",
+            "object-inspect": "^1.7.0",
+            "object-keys": "^1.1.1",
+            "object.assign": "^4.1.0",
+            "string.prototype.trimleft": "^2.1.1",
+            "string.prototype.trimright": "^2.1.1"
+          }
+        },
+        "has-symbols": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
+          "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
+          "dev": true
+        },
+        "object-keys": {
+          "version": "1.1.1",
+          "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+          "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+          "dev": true
+        }
       }
     },
     "object.getownpropertydescriptors": {
@@ -16439,12 +16382,6 @@
       "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
       "dev": true
     },
-    "require-main-filename": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
-      "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
-      "dev": true
-    },
     "requires-port": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
@@ -18079,6 +18016,29 @@
       "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=",
       "dev": true
     },
+    "tsconfig-paths": {
+      "version": "3.9.0",
+      "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz",
+      "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==",
+      "dev": true,
+      "requires": {
+        "@types/json5": "^0.0.29",
+        "json5": "^1.0.1",
+        "minimist": "^1.2.0",
+        "strip-bom": "^3.0.0"
+      },
+      "dependencies": {
+        "json5": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+          "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+          "dev": true,
+          "requires": {
+            "minimist": "^1.2.0"
+          }
+        }
+      }
+    },
     "tslib": {
       "version": "1.9.3",
       "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
@@ -18882,47 +18842,6 @@
         "errno": "~0.1.7"
       }
     },
-    "wrap-ansi": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
-      "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
-      "dev": true,
-      "requires": {
-        "string-width": "^1.0.1",
-        "strip-ansi": "^3.0.1"
-      },
-      "dependencies": {
-        "is-fullwidth-code-point": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
-          "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
-          "dev": true,
-          "requires": {
-            "number-is-nan": "^1.0.0"
-          }
-        },
-        "string-width": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
-          "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
-          "dev": true,
-          "requires": {
-            "code-point-at": "^1.0.0",
-            "is-fullwidth-code-point": "^1.0.0",
-            "strip-ansi": "^3.0.0"
-          }
-        },
-        "strip-ansi": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
-          "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
-          "dev": true,
-          "requires": {
-            "ansi-regex": "^2.0.0"
-          }
-        }
-      }
-    },
     "wrappy": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
diff --git a/package.json b/package.json
index 2c03187612..d0a7dbfb5d 100644
--- a/package.json
+++ b/package.json
@@ -154,11 +154,11 @@
     "codecov": "3.7.0",
     "conventional-changelog-cli": "2.0.34",
     "docdash": "git+https://github.com/char0n/docdash.git#534b44382138a55dd8d93642c979e51e46471185",
-    "dtslint": "=3.6.10",
+    "dtslint": "=3.6.12",
     "eslint": "6.8.0",
-    "eslint-config-airbnb-base": "14.1.0",
+    "eslint-config-airbnb-base": "14.2.0",
     "eslint-config-prettier": "6.11.0",
-    "eslint-plugin-import": "2.20.2",
+    "eslint-plugin-import": "2.21.2",
     "eslint-plugin-mocha": "6.3.0",
     "eslint-plugin-prettier": "3.1.3",
     "eslint-plugin-ramda": "2.5.1",
@@ -173,7 +173,7 @@
     "license-cli": "1.1.6",
     "lint-staged": "10.2.9",
     "mocha": "7.2.0",
-    "mocha-junit-reporter": "1.23.3",
+    "mocha-junit-reporter": "2.0.0",
     "mocha-multi-reporters": "1.1.7",
     "monet": "0.9.1",
     "nyc": "15.1.0",
diff --git a/src/allSettledP.js b/src/allSettledP.js
index 65bb8b6254..285e1b3147 100644
--- a/src/allSettledP.js
+++ b/src/allSettledP.js
@@ -1,9 +1,9 @@
 import { bind, curryN } from 'ramda';
 
 import isFunction from './isFunction';
-import polyfill from './internal/polyfills/Promise.allSettled';
+import ponyfill from './internal/ponyfills/Promise.allSettled';
 
-export const allSettledPPolyfill = curryN(1, polyfill);
+export const allSettledPPonyfill = curryN(1, ponyfill);
 
 /**
  * Returns a promise that is fulfilled with an array of promise state snapshots,
@@ -29,6 +29,6 @@ export const allSettledPPolyfill = curryN(1, polyfill);
  */
 const allSettledP = isFunction(Promise.allSettled)
   ? curryN(1, bind(Promise.allSettled, Promise))
-  : allSettledPPolyfill;
+  : allSettledPPonyfill;
 
 export default allSettledP;
diff --git a/src/anyP.js b/src/anyP.js
index 8bb2611032..6c684d8605 100644
--- a/src/anyP.js
+++ b/src/anyP.js
@@ -1,9 +1,9 @@
 import { bind, curryN } from 'ramda';
 
 import isFunction from './isFunction';
-import polyfill, { AggregatedError } from './internal/polyfills/Promise.any';
+import ponyfill, { AggregatedError } from './internal/ponyfills/Promise.any';
 
-export const anyPPolyfill = curryN(1, polyfill);
+export const anyPPonyfill = curryN(1, ponyfill);
 export { AggregatedError };
 
 /**
@@ -28,6 +28,6 @@ export { AggregatedError };
  */
 const anyP = isFunction(Promise.any)
   ? curryN(1, bind(Promise.any, Promise))
-  : anyPPolyfill;
+  : anyPPonyfill;
 
 export default anyP;
diff --git a/src/index.js b/src/index.js
index bee118f573..2b6d5edabc 100644
--- a/src/index.js
+++ b/src/index.js
@@ -204,6 +204,8 @@ export { default as floor } from './floor';
 export { default as trunc } from './trunc';
 export { default as sign } from './sign';
 export { default as subtractNum } from './subtractNum';
+export { default as toInteger32 } from './toInteger32';
+export { default as toInt32 } from './toInteger32'; // alias of toInteger32
 // String
 export { default as replaceAll } from './replaceAll';
 export { default as escapeRegExp } from './escapeRegExp';
diff --git a/src/internal/polyfills/Math.sign.js b/src/internal/polyfills/Math.sign.js
deleted file mode 100644
index 953341f958..0000000000
--- a/src/internal/polyfills/Math.sign.js
+++ /dev/null
@@ -1,3 +0,0 @@
-const signPolyfill = (number) => (number > 0) - (number < 0) || +number;
-
-export default signPolyfill;
diff --git a/src/internal/polyfills/Array.from.js b/src/internal/ponyfills/Array.from.js
similarity index 100%
rename from src/internal/polyfills/Array.from.js
rename to src/internal/ponyfills/Array.from.js
diff --git a/src/internal/ponyfills/Math.sign.js b/src/internal/ponyfills/Math.sign.js
new file mode 100644
index 0000000000..d3aa21d4b2
--- /dev/null
+++ b/src/internal/ponyfills/Math.sign.js
@@ -0,0 +1,3 @@
+const signPonyfill = (number) => (number > 0) - (number < 0) || +number;
+
+export default signPonyfill;
diff --git a/src/internal/polyfills/Math.trunc.js b/src/internal/ponyfills/Math.trunc.js
similarity index 79%
rename from src/internal/polyfills/Math.trunc.js
rename to src/internal/ponyfills/Math.trunc.js
index a33f040642..c882f83056 100644
--- a/src/internal/polyfills/Math.trunc.js
+++ b/src/internal/ponyfills/Math.trunc.js
@@ -1,6 +1,6 @@
 import isFinite from '../../isFinite';
 
-const truncPolyfill = (v) => {
+const truncPonyfill = (v) => {
   const numV = Number(v);
 
   if (!isFinite(numV)) {
@@ -11,4 +11,4 @@ const truncPolyfill = (v) => {
   return numV - (numV % 1) || (numV < 0 ? -0 : numV === 0 ? numV : 0);
 };
 
-export default truncPolyfill;
+export default truncPonyfill;
diff --git a/src/internal/polyfills/Number.MAX_SAFE_INTEGER.js b/src/internal/ponyfills/Number.MAX_SAFE_INTEGER.js
similarity index 100%
rename from src/internal/polyfills/Number.MAX_SAFE_INTEGER.js
rename to src/internal/ponyfills/Number.MAX_SAFE_INTEGER.js
diff --git a/src/internal/polyfills/Number.MIN_SAFE_INTEGER.js b/src/internal/ponyfills/Number.MIN_SAFE_INTEGER.js
similarity index 100%
rename from src/internal/polyfills/Number.MIN_SAFE_INTEGER.js
rename to src/internal/ponyfills/Number.MIN_SAFE_INTEGER.js
diff --git a/src/internal/polyfills/Number.isFinite.js b/src/internal/ponyfills/Number.isFinite.js
similarity index 59%
rename from src/internal/polyfills/Number.isFinite.js
rename to src/internal/ponyfills/Number.isFinite.js
index 2c56607a9b..a5a44d96a2 100644
--- a/src/internal/polyfills/Number.isFinite.js
+++ b/src/internal/ponyfills/Number.isFinite.js
@@ -3,6 +3,6 @@ import { both } from 'ramda';
 import isNumber from '../../isNumber';
 
 // eslint-disable-next-line no-restricted-globals
-const isFinitePolyfill = both(isNumber, isFinite);
+const isFinitePonyfill = both(isNumber, isFinite);
 
-export default isFinitePolyfill;
+export default isFinitePonyfill;
diff --git a/src/internal/polyfills/Number.isInteger.js b/src/internal/ponyfills/Number.isInteger.js
similarity index 70%
rename from src/internal/polyfills/Number.isInteger.js
rename to src/internal/ponyfills/Number.isInteger.js
index e4332ddd99..4b0e600c28 100644
--- a/src/internal/polyfills/Number.isInteger.js
+++ b/src/internal/ponyfills/Number.isInteger.js
@@ -2,9 +2,9 @@ import { both, converge, equals, identity } from 'ramda';
 
 import isFinite from '../../isFinite';
 
-const isIntegerPolyfill = both(
+const isIntegerPonyfill = both(
   isFinite,
   converge(equals, [Math.floor, identity])
 );
 
-export default isIntegerPolyfill;
+export default isIntegerPonyfill;
diff --git a/src/internal/polyfills/Number.isNaN.js b/src/internal/ponyfills/Number.isNaN.js
similarity index 61%
rename from src/internal/polyfills/Number.isNaN.js
rename to src/internal/ponyfills/Number.isNaN.js
index d032db2a2f..c30659d41d 100644
--- a/src/internal/polyfills/Number.isNaN.js
+++ b/src/internal/ponyfills/Number.isNaN.js
@@ -3,6 +3,6 @@ import { both } from 'ramda';
 import isNumber from '../../isNumber';
 
 // eslint-disable-next-line no-restricted-globals
-const isNaNPolyfill = both(isNumber, isNaN);
+const isNaNPonyfill = both(isNumber, isNaN);
 
-export default isNaNPolyfill;
+export default isNaNPonyfill;
diff --git a/src/internal/polyfills/Number.isSafeInteger.js b/src/internal/ponyfills/Number.isSafeInteger.js
similarity index 72%
rename from src/internal/polyfills/Number.isSafeInteger.js
rename to src/internal/ponyfills/Number.isSafeInteger.js
index a11d4d6731..21a9cc6e21 100644
--- a/src/internal/polyfills/Number.isSafeInteger.js
+++ b/src/internal/ponyfills/Number.isSafeInteger.js
@@ -3,9 +3,9 @@ import { both } from 'ramda';
 import isInteger from '../../isInteger';
 import MAX_SAFE_INTEGER from './Number.MAX_SAFE_INTEGER';
 
-const isSafeIntegerPolyfill = both(
+const isSafeIntegerPonyfill = both(
   isInteger,
   (value) => Math.abs(value) <= MAX_SAFE_INTEGER
 );
 
-export default isSafeIntegerPolyfill;
+export default isSafeIntegerPonyfill;
diff --git a/src/internal/polyfills/Promise.allSettled.js b/src/internal/ponyfills/Promise.allSettled.js
similarity index 81%
rename from src/internal/polyfills/Promise.allSettled.js
rename to src/internal/ponyfills/Promise.allSettled.js
index 357f096b4c..db5f5ce22a 100644
--- a/src/internal/polyfills/Promise.allSettled.js
+++ b/src/internal/ponyfills/Promise.allSettled.js
@@ -6,7 +6,7 @@ import resolveP from '../../resolveP';
 const onFulfill = (value) => ({ status: 'fulfilled', value });
 const onReject = (reason) => ({ status: 'rejected', reason });
 
-const allSettledPolyfill = (iterable) => {
+const allSettledPonyfill = (iterable) => {
   const array = map((p) => resolveP(p).then(onFulfill).catch(onReject), [
     ...iterable,
   ]);
@@ -14,4 +14,4 @@ const allSettledPolyfill = (iterable) => {
   return allP(array);
 };
 
-export default allSettledPolyfill;
+export default allSettledPonyfill;
diff --git a/src/internal/polyfills/Promise.any.js b/src/internal/ponyfills/Promise.any.js
similarity index 89%
rename from src/internal/polyfills/Promise.any.js
rename to src/internal/ponyfills/Promise.any.js
index 367c2897e7..832125a514 100644
--- a/src/internal/polyfills/Promise.any.js
+++ b/src/internal/ponyfills/Promise.any.js
@@ -10,7 +10,7 @@ export class AggregatedError extends Error {
   }
 }
 
-const anyPolyfill = (iterable) => {
+const anyPonyfill = (iterable) => {
   const exceptions = [];
 
   return new Promise((resolve, reject) => {
@@ -26,4 +26,4 @@ const anyPolyfill = (iterable) => {
   });
 };
 
-export default anyPolyfill;
+export default anyPonyfill;
diff --git a/src/internal/polyfills/String.padEnd.js b/src/internal/ponyfills/String.padEnd.js
similarity index 88%
rename from src/internal/polyfills/String.padEnd.js
rename to src/internal/ponyfills/String.padEnd.js
index 0f10f49b4c..047991b319 100644
--- a/src/internal/polyfills/String.padEnd.js
+++ b/src/internal/ponyfills/String.padEnd.js
@@ -2,7 +2,7 @@ import isFunction from '../../isFunction';
 import isNotUndefined from '../../isNotUndefined';
 import repeat from './String.repeat';
 
-const padEndPolyfill = (padString, targetLength, value) => {
+const padEndPonyfill = (padString, targetLength, value) => {
   // eslint-disable-next-line no-bitwise
   let finalLength = targetLength >> 0;
   let finalPadString = String(isNotUndefined(padString) ? padString : ' ');
@@ -22,4 +22,4 @@ const padEndPolyfill = (padString, targetLength, value) => {
   return String(value) + finalPadString.slice(0, finalLength);
 };
 
-export default padEndPolyfill;
+export default padEndPonyfill;
diff --git a/src/internal/polyfills/String.padStart.js b/src/internal/ponyfills/String.padStart.js
similarity index 90%
rename from src/internal/polyfills/String.padStart.js
rename to src/internal/ponyfills/String.padStart.js
index d8371f603d..de9778d288 100644
--- a/src/internal/polyfills/String.padStart.js
+++ b/src/internal/ponyfills/String.padStart.js
@@ -2,7 +2,7 @@ import isFunction from '../../isFunction';
 import isNotUndefined from '../../isNotUndefined';
 import repeat from './String.repeat';
 
-const padStartPolyfill = (padString, targetLength, value) => {
+const padStartPonyfill = (padString, targetLength, value) => {
   // eslint-disable-next-line no-bitwise
   let finalLength = targetLength >> 0; // truncate if number, or convert non-number to 0;
   let finalPadString = String(isNotUndefined(padString) ? padString : ' ');
@@ -24,4 +24,4 @@ const padStartPolyfill = (padString, targetLength, value) => {
   return finalPadString.slice(0, finalLength) + String(value);
 };
 
-export default padStartPolyfill;
+export default padStartPonyfill;
diff --git a/src/internal/polyfills/String.repeat.js b/src/internal/ponyfills/String.repeat.js
similarity index 100%
rename from src/internal/polyfills/String.repeat.js
rename to src/internal/ponyfills/String.repeat.js
diff --git a/src/internal/polyfills/String.replaceAll.js b/src/internal/ponyfills/String.replaceAll.js
similarity index 100%
rename from src/internal/polyfills/String.replaceAll.js
rename to src/internal/ponyfills/String.replaceAll.js
diff --git a/src/internal/polyfills/String.trimEnd.js b/src/internal/ponyfills/String.trimEnd.js
similarity index 100%
rename from src/internal/polyfills/String.trimEnd.js
rename to src/internal/ponyfills/String.trimEnd.js
diff --git a/src/internal/polyfills/String.trimStart.js b/src/internal/ponyfills/String.trimStart.js
similarity index 100%
rename from src/internal/polyfills/String.trimStart.js
rename to src/internal/ponyfills/String.trimStart.js
diff --git a/src/isFinite.js b/src/isFinite.js
index c78958e9c1..dbfb4cefb5 100644
--- a/src/isFinite.js
+++ b/src/isFinite.js
@@ -1,9 +1,9 @@
 import { bind, curryN } from 'ramda';
 
 import isFunction from './isFunction';
-import polyfill from './internal/polyfills/Number.isFinite';
+import ponyfill from './internal/ponyfills/Number.isFinite';
 
-export const isFinitePolyfill = curryN(1, polyfill);
+export const isFinitePonyfill = curryN(1, ponyfill);
 
 /**
  * Checks whether the passed value is a finite `Number`.
@@ -32,6 +32,6 @@ export const isFinitePolyfill = curryN(1, polyfill);
  */
 const _isFinite = isFunction(Number.isFinite)
   ? curryN(1, bind(Number.isFinite, Number))
-  : isFinitePolyfill;
+  : isFinitePonyfill;
 
 export default _isFinite;
diff --git a/src/isInteger.js b/src/isInteger.js
index 902664dfbe..fdb6c87f90 100644
--- a/src/isInteger.js
+++ b/src/isInteger.js
@@ -1,9 +1,9 @@
 import { bind, curryN } from 'ramda';
 
 import isFunction from './isFunction';
-import polyfill from './internal/polyfills/Number.isInteger';
+import ponyfill from './internal/ponyfills/Number.isInteger';
 
-export const isIntegerPolyfill = curryN(1, polyfill);
+export const isIntegerPonyfill = curryN(1, ponyfill);
 
 /**
  * Checks whether the passed value is an `integer`.
@@ -35,6 +35,6 @@ export const isIntegerPolyfill = curryN(1, polyfill);
  */
 const isInteger = isFunction(Number.isInteger)
   ? curryN(1, bind(Number.isInteger, Number))
-  : isIntegerPolyfill;
+  : isIntegerPonyfill;
 
 export default isInteger;
diff --git a/src/isNaN.js b/src/isNaN.js
index c3a542e641..cde7845c6a 100644
--- a/src/isNaN.js
+++ b/src/isNaN.js
@@ -1,9 +1,9 @@
 import { curryN } from 'ramda';
 
 import isFunction from './isFunction';
-import polyfill from './internal/polyfills/Number.isNaN';
+import ponyfill from './internal/ponyfills/Number.isNaN';
 
-export const isNaNPolyfill = curryN(1, polyfill);
+export const isNaNPonyfill = curryN(1, ponyfill);
 
 /**
  * Checks whether the passed value is `NaN` and its type is `Number`.
@@ -40,6 +40,6 @@ export const isNaNPolyfill = curryN(1, polyfill);
  */
 const _isNaN = isFunction(Number.isNaN)
   ? curryN(1, Number.isNaN)
-  : isNaNPolyfill;
+  : isNaNPonyfill;
 
 export default _isNaN;
diff --git a/src/isSafeInteger.js b/src/isSafeInteger.js
index af8b4de90e..877bc5a49c 100644
--- a/src/isSafeInteger.js
+++ b/src/isSafeInteger.js
@@ -1,9 +1,9 @@
 import { bind, curryN } from 'ramda';
 
 import isFunction from './isFunction';
-import polyfill from './internal/polyfills/Number.isSafeInteger';
+import ponyfill from './internal/ponyfills/Number.isSafeInteger';
 
-export const isSafeIntegerPolyfill = curryN(1, polyfill);
+export const isSafeIntegerPonyfill = curryN(1, ponyfill);
 
 /**
  * Checks whether the passed value is a safe `integer`.
@@ -35,6 +35,6 @@ export const isSafeIntegerPolyfill = curryN(1, polyfill);
 
 const isSafeInteger = isFunction(Number.isSafeInteger)
   ? curryN(1, bind(Number.isSafeInteger, Number))
-  : isSafeIntegerPolyfill;
+  : isSafeIntegerPonyfill;
 
 export default isSafeInteger;
diff --git a/src/padCharsEnd.js b/src/padCharsEnd.js
index 6552e27cb5..b7176120b7 100644
--- a/src/padCharsEnd.js
+++ b/src/padCharsEnd.js
@@ -1,9 +1,9 @@
 import { curry, invoker, flip } from 'ramda';
 
-import polyfill from './internal/polyfills/String.padEnd';
+import ponyfill from './internal/ponyfills/String.padEnd';
 import isFunction from './isFunction';
 
-export const padEndPolyfill = curry(polyfill);
+export const padEndPonyfill = curry(ponyfill);
 
 export const padEndInvoker = flip(invoker(2, 'padEnd'));
 
@@ -32,6 +32,6 @@ export const padEndInvoker = flip(invoker(2, 'padEnd'));
  */
 const padCharsEnd = isFunction(String.prototype.padEnd)
   ? padEndInvoker
-  : padEndPolyfill;
+  : padEndPonyfill;
 
 export default padCharsEnd;
diff --git a/src/padCharsStart.js b/src/padCharsStart.js
index e705d33036..196af67c08 100644
--- a/src/padCharsStart.js
+++ b/src/padCharsStart.js
@@ -1,11 +1,11 @@
 import { flip, invoker, curry } from 'ramda';
 
 import isFunction from './isFunction';
-import polyfill from './internal/polyfills/String.padStart';
+import ponyfill from './internal/ponyfills/String.padStart';
 
 export const padStartInvoker = flip(invoker(2, 'padStart'));
 
-export const padStartPolyfill = curry(polyfill);
+export const padStartPonyfill = curry(ponyfill);
 
 /**
  * The function pads the current string with a given string
@@ -30,6 +30,6 @@ export const padStartPolyfill = curry(polyfill);
  */
 const padCharsStart = isFunction(String.prototype.padStart)
   ? padStartInvoker
-  : padStartPolyfill;
+  : padStartPonyfill;
 
 export default padCharsStart;
diff --git a/src/repeatStr.js b/src/repeatStr.js
index a532cb1414..d66cf97a2d 100644
--- a/src/repeatStr.js
+++ b/src/repeatStr.js
@@ -1,9 +1,9 @@
 import { curry, invoker, flip } from 'ramda';
 
-import polyfill from './internal/polyfills/String.repeat';
+import ponyfill from './internal/ponyfills/String.repeat';
 import isFunction from './isFunction';
 
-export const repeatStrPolyfill = curry(polyfill);
+export const repeatStrPonyfill = curry(ponyfill);
 
 export const repeatStrInvoker = flip(invoker(1, 'repeat'));
 
@@ -25,6 +25,6 @@ export const repeatStrInvoker = flip(invoker(1, 'repeat'));
  */
 const repeatStr = isFunction(String.prototype.repeat)
   ? repeatStrInvoker
-  : repeatStrPolyfill;
+  : repeatStrPonyfill;
 
 export default repeatStr;
diff --git a/src/replaceAll.js b/src/replaceAll.js
index 9b1f5d5684..c59f9bde23 100644
--- a/src/replaceAll.js
+++ b/src/replaceAll.js
@@ -1,9 +1,9 @@
 import { curryN, invoker } from 'ramda';
 
 import isFunction from './isFunction';
-import polyfill from './internal/polyfills/String.replaceAll';
+import ponyfill from './internal/ponyfills/String.replaceAll';
 
-export const replaceAllPolyfill = curryN(3, polyfill);
+export const replaceAllPonyfill = curryN(3, ponyfill);
 
 export const replaceAllInvoker = invoker(2, 'replaceAll');
 
@@ -31,6 +31,6 @@ export const replaceAllInvoker = invoker(2, 'replaceAll');
 
 const replaceAll = isFunction(String.prototype.replaceAll)
   ? replaceAllInvoker
-  : replaceAllPolyfill;
+  : replaceAllPonyfill;
 
 export default replaceAll;
diff --git a/src/sign.js b/src/sign.js
index c666566cbe..f5088c16ea 100644
--- a/src/sign.js
+++ b/src/sign.js
@@ -1,9 +1,9 @@
 import { bind, curryN } from 'ramda';
 
 import isFunction from './isFunction';
-import polyfill from './internal/polyfills/Math.sign';
+import ponyfill from './internal/ponyfills/Math.sign';
 
-export const signPolyfill = curryN(1, polyfill);
+export const signPonyfill = curryN(1, ponyfill);
 
 /**
  * Returns the sign of a number, indicating whether the number is positive, negative or zero.
@@ -28,6 +28,6 @@ export const signPolyfill = curryN(1, polyfill);
 
 const sign = isFunction(Math.sign)
   ? curryN(1, bind(Math.sign, Math))
-  : signPolyfill;
+  : signPonyfill;
 
 export default sign;
diff --git a/src/toArray.js b/src/toArray.js
index 5bf2c3cd43..ab4bf0f66c 100644
--- a/src/toArray.js
+++ b/src/toArray.js
@@ -2,11 +2,11 @@ import { ifElse, values, curryN } from 'ramda';
 
 import isIterable from './isIterable';
 import isFunction from './isFunction';
-import polyfill from './internal/polyfills/Array.from';
+import ponyfill from './internal/ponyfills/Array.from';
 
-export const fromPolyfill = curryN(1, polyfill);
+export const fromPonyfill = curryN(1, ponyfill);
 
-const fromArray = isFunction(Array.from) ? curryN(1, Array.from) : fromPolyfill;
+const fromArray = isFunction(Array.from) ? curryN(1, Array.from) : fromPonyfill;
 
 /**
  * Converts value to an array.
diff --git a/src/toInteger32.js b/src/toInteger32.js
new file mode 100644
index 0000000000..45c129b1b9
--- /dev/null
+++ b/src/toInteger32.js
@@ -0,0 +1,22 @@
+import { curryN } from 'ramda';
+/**
+ * Converts double-precision 64-bit binary format IEEE 754 to signed 32 bit integer number.
+ *
+ * @func toInteger32
+ * @aliases toInt32
+ * @memberOf RA
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.28.0|v2.28.0}
+ * @category Math
+ * @sig Number -> Number
+ * @param {number} number A number
+ * @return {number} A signed 32-bit integer number
+ * @see {@link RA.toUInteger32|toUInteger32}, {@link http://speakingjs.com/es5/ch11.html#integers_via_bitwise_operators}
+ * @example
+ *
+ * RA.toInteger32(2 ** 35); // => 0
+ * RA.toInteger32(2 ** 30); // => 1073741824
+ */
+// eslint-disable-next-line no-bitwise
+const toInteger32 = curryN(1, (val) => val >> 0);
+
+export default toInteger32;
diff --git a/src/trimEnd.js b/src/trimEnd.js
index 7d3ebb4d3f..d6ebe6918c 100644
--- a/src/trimEnd.js
+++ b/src/trimEnd.js
@@ -1,9 +1,9 @@
 import { invoker } from 'ramda';
 
-import polyfill from './internal/polyfills/String.trimEnd';
+import ponyfill from './internal/ponyfills/String.trimEnd';
 import isFunction from './isFunction';
 
-export const trimEndPolyfill = polyfill;
+export const trimEndPonyfill = ponyfill;
 
 export const trimEndInvoker = invoker(0, 'trimEnd');
 
@@ -25,6 +25,6 @@ export const trimEndInvoker = invoker(0, 'trimEnd');
 
 const trimEnd = isFunction(String.prototype.trimEnd)
   ? trimEndInvoker
-  : trimEndPolyfill;
+  : trimEndPonyfill;
 
 export default trimEnd;
diff --git a/src/trimStart.js b/src/trimStart.js
index a249bc9c38..2fee7f663d 100644
--- a/src/trimStart.js
+++ b/src/trimStart.js
@@ -1,9 +1,9 @@
 import { invoker } from 'ramda';
 
-import polyfill from './internal/polyfills/String.trimStart';
+import ponyfill from './internal/ponyfills/String.trimStart';
 import isFunction from './isFunction';
 
-export const trimStartPolyfill = polyfill;
+export const trimStartPonyfill = ponyfill;
 
 export const trimStartInvoker = invoker(0, 'trimStart');
 
@@ -24,6 +24,6 @@ export const trimStartInvoker = invoker(0, 'trimStart');
 
 const trimStart = isFunction(String.prototype.trimStart)
   ? trimStartInvoker
-  : trimStartPolyfill;
+  : trimStartPonyfill;
 
 export default trimStart;
diff --git a/src/trunc.js b/src/trunc.js
index 212de7adbb..c8f200f0bf 100644
--- a/src/trunc.js
+++ b/src/trunc.js
@@ -1,9 +1,9 @@
 import { bind, curryN } from 'ramda';
 
-import polyfill from './internal/polyfills/Math.trunc';
+import ponyfill from './internal/ponyfills/Math.trunc';
 import isFunction from './isFunction';
 
-export const truncPolyfill = curryN(1, polyfill);
+export const truncPonyfill = curryN(1, ponyfill);
 
 /**
  * Returns the integer part of a number by removing any fractional digits.
@@ -28,6 +28,6 @@ export const truncPolyfill = curryN(1, polyfill);
 
 const trunc = isFunction(Math.trunc)
   ? curryN(1, bind(Math.trunc, Math))
-  : truncPolyfill;
+  : truncPonyfill;
 
 export default trunc;
diff --git a/types/index.d.ts b/types/index.d.ts
index 47f96ab671..98a49f1da4 100644
--- a/types/index.d.ts
+++ b/types/index.d.ts
@@ -1392,6 +1392,12 @@ declare namespace RamdaAdjunct {
         invokeArgs(pathToMethod: string[], args: Array<string | number>, obj: object): any;
         invokeArgs(pathToMethod: string[], args: Array<string | number>): (obj: object) => any;
         invokeArgs(pathToMethod: string[]): (args: Array<string | number>, obj: object) => any;
+
+        /**
+         * Converts double-precision 64-bit binary format IEEE 754 to signed 32 bit integer number.
+         */
+        toInteger32(n: number): number;
+        toInt32(n: number): number; // alias
     }
 }
 


Test patch:
diff --git a/test/allSettledP.js b/test/allSettledP.js
index 2959a9cb8e..40d89fb418 100644
--- a/test/allSettledP.js
+++ b/test/allSettledP.js
@@ -2,7 +2,7 @@ import * as R from 'ramda';
 import { assert } from 'chai';
 
 import * as RA from '../src';
-import { allSettledPPolyfill } from '../src/allSettledP';
+import { allSettledPPonyfill } from '../src/allSettledP';
 
 describe('allSettledP', function () {
   context('given list of fulfilled promises', function () {
@@ -113,7 +113,7 @@ describe('allSettledP', function () {
     assert.deepEqual(await allSettledP(actual), expected);
   });
 
-  context('allSettledPPolyfill', function () {
+  context('allSettledPPonyfill', function () {
     context('given list of fulfilled promises', function () {
       specify('should return list of fulfilled values', async function () {
         const p1 = RA.resolveP(1);
@@ -126,7 +126,7 @@ describe('allSettledP', function () {
           { status: 'fulfilled', value: 3 },
         ];
 
-        assert.deepEqual(await allSettledPPolyfill(actual), expected);
+        assert.deepEqual(await allSettledPPonyfill(actual), expected);
       });
     });
 
@@ -142,7 +142,7 @@ describe('allSettledP', function () {
           { status: 'rejected', reason: 3 },
         ];
 
-        assert.deepEqual(await allSettledPPolyfill(actual), expected);
+        assert.deepEqual(await allSettledPPonyfill(actual), expected);
       });
     });
 
@@ -160,7 +160,7 @@ describe('allSettledP', function () {
             { status: 'rejected', reason: 3 },
           ];
 
-          assert.deepEqual(await allSettledPPolyfill(actual), expected);
+          assert.deepEqual(await allSettledPPonyfill(actual), expected);
         }
       );
     });
@@ -177,7 +177,7 @@ describe('allSettledP', function () {
           { status: 'fulfilled', value: 3 },
         ];
 
-        assert.deepEqual(await allSettledPPolyfill(actual), expected);
+        assert.deepEqual(await allSettledPPonyfill(actual), expected);
       });
     });
 
@@ -193,7 +193,7 @@ describe('allSettledP', function () {
           { status: 'fulfilled', value: 3 },
         ];
 
-        assert.deepEqual(await allSettledPPolyfill(actual), expected);
+        assert.deepEqual(await allSettledPPonyfill(actual), expected);
       });
     });
 
@@ -203,12 +203,12 @@ describe('allSettledP', function () {
         const actual = list.map(RA.resolveP);
         const expected = list.map((value) => ({ status: 'fulfilled', value }));
 
-        assert.deepEqual(await allSettledPPolyfill(actual), expected);
+        assert.deepEqual(await allSettledPPonyfill(actual), expected);
       });
     });
 
     it('should support placeholder to specify "gaps"', async function () {
-      const allSettledP = allSettledPPolyfill(R.__);
+      const allSettledP = allSettledPPonyfill(R.__);
       const p1 = RA.resolveP(1);
       const v2 = 2;
       const p3 = RA.resolveP(3);
diff --git a/test/anyP.js b/test/anyP.js
index efa74e050b..37d63ad7ac 100644
--- a/test/anyP.js
+++ b/test/anyP.js
@@ -2,7 +2,7 @@ import * as R from 'ramda';
 import { assert } from 'chai';
 
 import * as RA from '../src';
-import { anyPPolyfill, AggregatedError } from '../src/anyP';
+import { anyPPonyfill, AggregatedError } from '../src/anyP';
 
 describe('anyP', function () {
   context('given list of fulfilled promises', function () {
@@ -96,7 +96,7 @@ describe('anyP', function () {
     assert.strictEqual(await anyP(actual), expected);
   });
 
-  context('anyPPolyfill', function () {
+  context('anyPPonyfill', function () {
     context('given list of fulfilled promises', function () {
       specify('should return first of fulfilled values', async function () {
         const p1 = RA.resolveP(1);
@@ -105,7 +105,7 @@ describe('anyP', function () {
         const actual = [p1, p2, p3];
         const expected = 1;
 
-        assert.strictEqual(await anyPPolyfill(actual), expected);
+        assert.strictEqual(await anyPPonyfill(actual), expected);
       });
     });
 
@@ -120,7 +120,7 @@ describe('anyP', function () {
           const expected = [1, 2, 3];
 
           try {
-            await anyPPolyfill(actual);
+            await anyPPonyfill(actual);
             throw new Error('resolving should fail');
           } catch (e) {
             assert.notStrictEqual(e.message, 'resolving should fail');
@@ -139,7 +139,7 @@ describe('anyP', function () {
         const actual = [p1, p2, p3];
         const expected = 2;
 
-        assert.strictEqual(await anyPPolyfill(actual), expected);
+        assert.strictEqual(await anyPPonyfill(actual), expected);
       });
     });
 
@@ -151,7 +151,7 @@ describe('anyP', function () {
         const actual = [v1, v2, v3];
         const expected = 1;
 
-        assert.strictEqual(await anyPPolyfill(actual), expected);
+        assert.strictEqual(await anyPPonyfill(actual), expected);
       });
     });
 
@@ -163,7 +163,7 @@ describe('anyP', function () {
         const actual = [p1, v2, p3];
         const expected = 1;
 
-        assert.strictEqual(await anyPPolyfill(actual), expected);
+        assert.strictEqual(await anyPPonyfill(actual), expected);
       });
     });
 
@@ -173,12 +173,12 @@ describe('anyP', function () {
         const actual = list.map(RA.resolveP);
         const expected = list[0];
 
-        assert.strictEqual(await anyPPolyfill(actual), expected);
+        assert.strictEqual(await anyPPonyfill(actual), expected);
       });
     });
 
     it('should support placeholder to specify "gaps"', async function () {
-      const anyP = anyPPolyfill(R.__);
+      const anyP = anyPPonyfill(R.__);
       const p1 = RA.resolveP(1);
       const v2 = 2;
       const p3 = RA.resolveP(3);
diff --git a/test/inRange.js b/test/inRange.js
index 40817468b7..2103de24b4 100644
--- a/test/inRange.js
+++ b/test/inRange.js
@@ -1,8 +1,8 @@
 import { assert } from 'chai';
 
 import * as RA from '../src';
-import MIN_SAFE_INTEGER from '../src/internal/polyfills/Number.MIN_SAFE_INTEGER';
-import MAX_SAFE_INTEGER from '../src/internal/polyfills/Number.MAX_SAFE_INTEGER';
+import MIN_SAFE_INTEGER from '../src/internal/ponyfills/Number.MIN_SAFE_INTEGER';
+import MAX_SAFE_INTEGER from '../src/internal/ponyfills/Number.MAX_SAFE_INTEGER';
 
 describe('inRange', function () {
   context('given integer falls within supplied range', function () {
diff --git a/test/isBigInt.js b/test/isBigInt.js
index 5682e31d17..11c0f96408 100644
--- a/test/isBigInt.js
+++ b/test/isBigInt.js
@@ -2,8 +2,8 @@ import { assert } from 'chai';
 import * as R from 'ramda';
 
 import * as RA from '../src';
-import MAX_SAFE_INTEGER from '../src/internal/polyfills/Number.MAX_SAFE_INTEGER';
-import MIN_SAFE_INTEGER from '../src/internal/polyfills/Number.MIN_SAFE_INTEGER';
+import MAX_SAFE_INTEGER from '../src/internal/ponyfills/Number.MAX_SAFE_INTEGER';
+import MIN_SAFE_INTEGER from '../src/internal/ponyfills/Number.MIN_SAFE_INTEGER';
 import BigInt from './shared/BigInt';
 import args from './shared/arguments';
 import Symbol from './shared/Symbol';
diff --git a/test/isEven.js b/test/isEven.js
index b0eea5beb9..0e7b2b9821 100644
--- a/test/isEven.js
+++ b/test/isEven.js
@@ -2,8 +2,8 @@ import { assert } from 'chai';
 import * as R from 'ramda';
 
 import * as RA from '../src';
-import MAX_SAFE_INTEGER from '../src/internal/polyfills/Number.MAX_SAFE_INTEGER';
-import MIN_SAFE_INTEGER from '../src/internal/polyfills/Number.MIN_SAFE_INTEGER';
+import MAX_SAFE_INTEGER from '../src/internal/ponyfills/Number.MAX_SAFE_INTEGER';
+import MIN_SAFE_INTEGER from '../src/internal/ponyfills/Number.MIN_SAFE_INTEGER';
 import args from './shared/arguments';
 import Symbol from './shared/Symbol';
 
diff --git a/test/isFinite.js b/test/isFinite.js
index 0b9a48da8b..1e8fe2e3a8 100644
--- a/test/isFinite.js
+++ b/test/isFinite.js
@@ -2,7 +2,7 @@ import { assert } from 'chai';
 import * as R from 'ramda';
 
 import * as RA from '../src';
-import polyfill from '../src/internal/polyfills/Number.isFinite';
+import ponyfill from '../src/internal/ponyfills/Number.isFinite';
 
 describe('isFinite', function () {
   it('should test value for a finite `Number`', function () {
@@ -23,22 +23,22 @@ describe('isFinite', function () {
     assert.isFalse(RA.isFinite(null));
   });
 
-  it('should test polyfill for a finite `Number', function () {
-    assert.isFalse(polyfill(Infinity));
-    assert.isFalse(polyfill(NaN));
-    assert.isFalse(polyfill(-Infinity));
+  it('should test ponyfill for a finite `Number', function () {
+    assert.isFalse(ponyfill(Infinity));
+    assert.isFalse(ponyfill(NaN));
+    assert.isFalse(ponyfill(-Infinity));
 
-    assert.isTrue(polyfill(0));
-    assert.isTrue(polyfill(-0));
-    assert.isTrue(polyfill(2e64));
-    assert.isTrue(polyfill(324234));
-    assert.isTrue(polyfill(1.2342));
+    assert.isTrue(ponyfill(0));
+    assert.isTrue(ponyfill(-0));
+    assert.isTrue(ponyfill(2e64));
+    assert.isTrue(ponyfill(324234));
+    assert.isTrue(ponyfill(1.2342));
 
     // Would've been true with global isFinite('0').
-    assert.isFalse(polyfill('0'));
+    assert.isFalse(ponyfill('0'));
 
     // Would've been true with global isFinite(null).
-    assert.isFalse(polyfill(null));
+    assert.isFalse(ponyfill(null));
   });
 
   it('should support placeholder to specify "gaps"', function () {
diff --git a/test/isFloat.js b/test/isFloat.js
index 3a3b369bd3..d57e73942a 100644
--- a/test/isFloat.js
+++ b/test/isFloat.js
@@ -2,8 +2,8 @@ import { assert } from 'chai';
 import * as R from 'ramda';
 
 import * as RA from '../src';
-import MAX_SAFE_INTEGER from '../src/internal/polyfills/Number.MAX_SAFE_INTEGER';
-import MIN_SAFE_INTEGER from '../src/internal/polyfills/Number.MIN_SAFE_INTEGER';
+import MAX_SAFE_INTEGER from '../src/internal/ponyfills/Number.MAX_SAFE_INTEGER';
+import MIN_SAFE_INTEGER from '../src/internal/ponyfills/Number.MIN_SAFE_INTEGER';
 
 describe('isFloat', function () {
   context('given float number', function () {
diff --git a/test/isInteger.js b/test/isInteger.js
index b3036d9fcd..13181c79a3 100644
--- a/test/isInteger.js
+++ b/test/isInteger.js
@@ -2,9 +2,9 @@ import { assert } from 'chai';
 import * as R from 'ramda';
 
 import * as RA from '../src';
-import MAX_SAFE_INTEGER from '../src/internal/polyfills/Number.MAX_SAFE_INTEGER';
-import MIN_SAFE_INTEGER from '../src/internal/polyfills/Number.MIN_SAFE_INTEGER';
-import { isIntegerPolyfill } from '../src/isInteger';
+import MAX_SAFE_INTEGER from '../src/internal/ponyfills/Number.MAX_SAFE_INTEGER';
+import MIN_SAFE_INTEGER from '../src/internal/ponyfills/Number.MIN_SAFE_INTEGER';
+import { isIntegerPonyfill } from '../src/isInteger';
 
 describe('isInteger', function () {
   it('should test value for an `integer`', function () {
@@ -28,31 +28,31 @@ describe('isInteger', function () {
     assert.isFalse(RA.isInteger([1]));
   });
 
-  context('isIntegerPolyfill', function () {
-    specify('should test polyfill for an `integer', function () {
-      assert.isTrue(isIntegerPolyfill(0));
-      assert.isTrue(isIntegerPolyfill(1));
-      assert.isTrue(isIntegerPolyfill(-100000));
-      assert.isTrue(isIntegerPolyfill(MAX_SAFE_INTEGER));
-      assert.isTrue(isIntegerPolyfill(MIN_SAFE_INTEGER));
+  context('isIntegerPonyfill', function () {
+    specify('should test ponyfill for an `integer', function () {
+      assert.isTrue(isIntegerPonyfill(0));
+      assert.isTrue(isIntegerPonyfill(1));
+      assert.isTrue(isIntegerPonyfill(-100000));
+      assert.isTrue(isIntegerPonyfill(MAX_SAFE_INTEGER));
+      assert.isTrue(isIntegerPonyfill(MIN_SAFE_INTEGER));
 
-      assert.isFalse(isIntegerPolyfill(0.1));
-      assert.isFalse(isIntegerPolyfill(Math.PI));
-      assert.isFalse(isIntegerPolyfill(5.56789));
+      assert.isFalse(isIntegerPonyfill(0.1));
+      assert.isFalse(isIntegerPonyfill(Math.PI));
+      assert.isFalse(isIntegerPonyfill(5.56789));
 
-      assert.isFalse(isIntegerPolyfill(NaN));
-      assert.isFalse(isIntegerPolyfill(Infinity));
-      assert.isFalse(isIntegerPolyfill(-Infinity));
-      assert.isFalse(isIntegerPolyfill('10'));
-      assert.isFalse(isIntegerPolyfill(true));
-      assert.isFalse(isIntegerPolyfill(false));
-      assert.isFalse(isIntegerPolyfill([1]));
+      assert.isFalse(isIntegerPonyfill(NaN));
+      assert.isFalse(isIntegerPonyfill(Infinity));
+      assert.isFalse(isIntegerPonyfill(-Infinity));
+      assert.isFalse(isIntegerPonyfill('10'));
+      assert.isFalse(isIntegerPonyfill(true));
+      assert.isFalse(isIntegerPonyfill(false));
+      assert.isFalse(isIntegerPonyfill([1]));
     });
 
     specify('should support placeholder to specify "gaps"', function () {
-      const isIntegerPolyfillWithGap = isIntegerPolyfill(R.__);
+      const isIntegerPonyfillWithGap = isIntegerPonyfill(R.__);
 
-      assert.isTrue(isIntegerPolyfillWithGap(1));
+      assert.isTrue(isIntegerPonyfillWithGap(1));
     });
   });
 
diff --git a/test/isNaN.js b/test/isNaN.js
index d0cccbe0b5..8af50fda3d 100644
--- a/test/isNaN.js
+++ b/test/isNaN.js
@@ -2,7 +2,7 @@ import * as R from 'ramda';
 import { assert } from 'chai';
 
 import * as RA from '../src';
-import { isNaNPolyfill } from '../src/isNaN';
+import { isNaNPonyfill } from '../src/isNaN';
 
 describe('isNaN', function () {
   it('should test value for a `NaN`', function () {
@@ -31,29 +31,29 @@ describe('isNaN', function () {
     assert.isTrue(isNaN(NaN));
   });
 
-  context('isNaNPolyfill', function () {
-    specify('should test polyfill for a `NaN', function () {
-      assert.isTrue(isNaNPolyfill(NaN));
-      assert.isTrue(isNaNPolyfill(Number.NaN));
-      assert.isTrue(isNaNPolyfill(0 / 0));
+  context('isNaNPonyfill', function () {
+    specify('should test ponyfill for a `NaN', function () {
+      assert.isTrue(isNaNPonyfill(NaN));
+      assert.isTrue(isNaNPonyfill(Number.NaN));
+      assert.isTrue(isNaNPonyfill(0 / 0));
 
       // e.g. these would have been true with global isNaN().
-      assert.isFalse(isNaNPolyfill('NaN'));
-      assert.isFalse(isNaNPolyfill(undefined));
-      assert.isFalse(isNaNPolyfill({}));
-      assert.isFalse(isNaNPolyfill('blabla'));
-
-      assert.isFalse(isNaNPolyfill(true));
-      assert.isFalse(isNaNPolyfill(null));
-      assert.isFalse(isNaNPolyfill(37));
-      assert.isFalse(isNaNPolyfill('37'));
-      assert.isFalse(isNaNPolyfill('37.37'));
-      assert.isFalse(isNaNPolyfill(''));
-      assert.isFalse(isNaNPolyfill(' '));
+      assert.isFalse(isNaNPonyfill('NaN'));
+      assert.isFalse(isNaNPonyfill(undefined));
+      assert.isFalse(isNaNPonyfill({}));
+      assert.isFalse(isNaNPonyfill('blabla'));
+
+      assert.isFalse(isNaNPonyfill(true));
+      assert.isFalse(isNaNPonyfill(null));
+      assert.isFalse(isNaNPonyfill(37));
+      assert.isFalse(isNaNPonyfill('37'));
+      assert.isFalse(isNaNPonyfill('37.37'));
+      assert.isFalse(isNaNPonyfill(''));
+      assert.isFalse(isNaNPonyfill(' '));
     });
 
     specify('should support placeholder to specify "gaps"', function () {
-      const isNaN = isNaNPolyfill(R.__);
+      const isNaN = isNaNPonyfill(R.__);
 
       assert.isTrue(isNaN(NaN));
     });
diff --git a/test/isNegative.js b/test/isNegative.js
index d4493b6b20..965b7cdafc 100644
--- a/test/isNegative.js
+++ b/test/isNegative.js
@@ -2,8 +2,8 @@ import { assert } from 'chai';
 import * as R from 'ramda';
 
 import * as RA from '../src';
-import MAX_SAFE_INTEGER from '../src/internal/polyfills/Number.MAX_SAFE_INTEGER';
-import MIN_SAFE_INTEGER from '../src/internal/polyfills/Number.MIN_SAFE_INTEGER';
+import MAX_SAFE_INTEGER from '../src/internal/ponyfills/Number.MAX_SAFE_INTEGER';
+import MIN_SAFE_INTEGER from '../src/internal/ponyfills/Number.MIN_SAFE_INTEGER';
 import args from './shared/arguments';
 import Symbol from './shared/Symbol';
 
diff --git a/test/isNonNegative.js b/test/isNonNegative.js
index a0e84bbf9f..a7f3390a1a 100644
--- a/test/isNonNegative.js
+++ b/test/isNonNegative.js
@@ -2,8 +2,8 @@ import { assert } from 'chai';
 import * as R from 'ramda';
 
 import * as RA from '../src';
-import MAX_SAFE_INTEGER from '../src/internal/polyfills/Number.MAX_SAFE_INTEGER';
-import MIN_SAFE_INTEGER from '../src/internal/polyfills/Number.MIN_SAFE_INTEGER';
+import MAX_SAFE_INTEGER from '../src/internal/ponyfills/Number.MAX_SAFE_INTEGER';
+import MIN_SAFE_INTEGER from '../src/internal/ponyfills/Number.MIN_SAFE_INTEGER';
 import args from './shared/arguments';
 import Symbol from './shared/Symbol';
 
diff --git a/test/isNonPositive.js b/test/isNonPositive.js
index f9174fcf45..1e588c2789 100644
--- a/test/isNonPositive.js
+++ b/test/isNonPositive.js
@@ -2,8 +2,8 @@ import * as R from 'ramda';
 import { assert } from 'chai';
 
 import * as RA from '../src';
-import MAX_SAFE_INTEGER from '../src/internal/polyfills/Number.MAX_SAFE_INTEGER';
-import MIN_SAFE_INTEGER from '../src/internal/polyfills/Number.MIN_SAFE_INTEGER';
+import MAX_SAFE_INTEGER from '../src/internal/ponyfills/Number.MAX_SAFE_INTEGER';
+import MIN_SAFE_INTEGER from '../src/internal/ponyfills/Number.MIN_SAFE_INTEGER';
 import args from './shared/arguments';
 import Symbol from './shared/Symbol';
 
diff --git a/test/isNotFinite.js b/test/isNotFinite.js
index 1d2ae7c8a6..00baf9f945 100644
--- a/test/isNotFinite.js
+++ b/test/isNotFinite.js
@@ -2,7 +2,7 @@ import { assert } from 'chai';
 import * as R from 'ramda';
 
 import * as RA from '../src';
-import { isFinitePolyfill } from '../src/isFinite';
+import { isFinitePonyfill } from '../src/isFinite';
 
 describe('isNotFinite', function () {
   it('should test a value for complement of finite `Number`', function () {
@@ -20,30 +20,30 @@ describe('isNotFinite', function () {
     assert.isTrue(RA.isNotFinite(null));
   });
 
-  context('isFinitePolyfill complement', function () {
-    context('given we create complement of the polyfill', function () {
-      const polyfillC = R.complement(isFinitePolyfill);
+  context('isFinitePonyfill complement', function () {
+    context('given we create complement of the ponyfill', function () {
+      const ponyfillC = R.complement(isFinitePonyfill);
 
       specify(
         'should test a value for complement of finite `Number`',
         function () {
-          assert.isTrue(polyfillC(Infinity));
-          assert.isTrue(polyfillC(NaN));
-          assert.isTrue(polyfillC(-Infinity));
-
-          assert.isFalse(polyfillC(0));
-          assert.isFalse(polyfillC(-0));
-          assert.isFalse(polyfillC(2e64));
-          assert.isFalse(polyfillC(324234));
-          assert.isFalse(polyfillC(1.2342));
-
-          assert.isTrue(polyfillC('0'));
-          assert.isTrue(polyfillC(null));
+          assert.isTrue(ponyfillC(Infinity));
+          assert.isTrue(ponyfillC(NaN));
+          assert.isTrue(ponyfillC(-Infinity));
+
+          assert.isFalse(ponyfillC(0));
+          assert.isFalse(ponyfillC(-0));
+          assert.isFalse(ponyfillC(2e64));
+          assert.isFalse(ponyfillC(324234));
+          assert.isFalse(ponyfillC(1.2342));
+
+          assert.isTrue(ponyfillC('0'));
+          assert.isTrue(ponyfillC(null));
         }
       );
 
       specify('should support placeholder to specify "gaps"', function () {
-        const isNotFinite = polyfillC(R.__);
+        const isNotFinite = ponyfillC(R.__);
 
         assert.isFalse(isNotFinite(-1));
       });
diff --git a/test/isNotFloat.js b/test/isNotFloat.js
index f85f272f77..8b8d1eacaa 100644
--- a/test/isNotFloat.js
+++ b/test/isNotFloat.js
@@ -2,8 +2,8 @@ import { assert } from 'chai';
 import * as R from 'ramda';
 
 import * as RA from '../src';
-import MAX_SAFE_INTEGER from '../src/internal/polyfills/Number.MAX_SAFE_INTEGER';
-import MIN_SAFE_INTEGER from '../src/internal/polyfills/Number.MIN_SAFE_INTEGER';
+import MAX_SAFE_INTEGER from '../src/internal/ponyfills/Number.MAX_SAFE_INTEGER';
+import MIN_SAFE_INTEGER from '../src/internal/ponyfills/Number.MIN_SAFE_INTEGER';
 
 describe('isNotFloat', function () {
   context('given float number', function () {
diff --git a/test/isNotInteger.js b/test/isNotInteger.js
index c1c8f03574..e4fd80f16f 100644
--- a/test/isNotInteger.js
+++ b/test/isNotInteger.js
@@ -2,8 +2,8 @@ import { assert } from 'chai';
 import * as R from 'ramda';
 
 import * as RA from '../src';
-import MAX_SAFE_INTEGER from '../src/internal/polyfills/Number.MAX_SAFE_INTEGER';
-import MIN_SAFE_INTEGER from '../src/internal/polyfills/Number.MIN_SAFE_INTEGER';
+import MAX_SAFE_INTEGER from '../src/internal/ponyfills/Number.MAX_SAFE_INTEGER';
+import MIN_SAFE_INTEGER from '../src/internal/ponyfills/Number.MIN_SAFE_INTEGER';
 
 describe('isNotInteger', function () {
   it('should test value for an `integer`', function () {
diff --git a/test/isNotNaN.js b/test/isNotNaN.js
index 6be32537a8..d6683b4c70 100644
--- a/test/isNotNaN.js
+++ b/test/isNotNaN.js
@@ -2,7 +2,7 @@ import * as R from 'ramda';
 import { assert } from 'chai';
 
 import * as RA from '../src';
-import { isNaNPolyfill } from '../src/isNaN';
+import { isNaNPonyfill } from '../src/isNaN';
 
 describe('isNotNaN', function () {
   it('should test value for complement of `NaN`', function () {
@@ -30,31 +30,31 @@ describe('isNotNaN', function () {
     assert.isFalse(isNotNaN(NaN));
   });
 
-  context('isNotNaNPolyfill', function () {
-    const isNotNaNpolyfill = R.complement(isNaNPolyfill);
+  context('isNotNaNPonyfill', function () {
+    const isNotNaNponyfill = R.complement(isNaNPonyfill);
 
-    specify('should test polyfill for a `NaN', function () {
-      assert.isFalse(isNotNaNpolyfill(NaN));
-      assert.isFalse(isNotNaNpolyfill(Number.NaN));
-      assert.isFalse(isNotNaNpolyfill(0 / 0));
+    specify('should test ponyfill for a `NaN', function () {
+      assert.isFalse(isNotNaNponyfill(NaN));
+      assert.isFalse(isNotNaNponyfill(Number.NaN));
+      assert.isFalse(isNotNaNponyfill(0 / 0));
 
       // e.g. these would have been true with global isNaN().
-      assert.isTrue(isNotNaNpolyfill('NaN'));
-      assert.isTrue(isNotNaNpolyfill(undefined));
-      assert.isTrue(isNotNaNpolyfill({}));
-      assert.isTrue(isNotNaNpolyfill('blabla'));
-
-      assert.isTrue(isNotNaNpolyfill(true));
-      assert.isTrue(isNotNaNpolyfill(null));
-      assert.isTrue(isNotNaNpolyfill(37));
-      assert.isTrue(isNotNaNpolyfill('37'));
-      assert.isTrue(isNotNaNpolyfill('37.37'));
-      assert.isTrue(isNotNaNpolyfill(''));
-      assert.isTrue(isNotNaNpolyfill(' '));
+      assert.isTrue(isNotNaNponyfill('NaN'));
+      assert.isTrue(isNotNaNponyfill(undefined));
+      assert.isTrue(isNotNaNponyfill({}));
+      assert.isTrue(isNotNaNponyfill('blabla'));
+
+      assert.isTrue(isNotNaNponyfill(true));
+      assert.isTrue(isNotNaNponyfill(null));
+      assert.isTrue(isNotNaNponyfill(37));
+      assert.isTrue(isNotNaNponyfill('37'));
+      assert.isTrue(isNotNaNponyfill('37.37'));
+      assert.isTrue(isNotNaNponyfill(''));
+      assert.isTrue(isNotNaNponyfill(' '));
     });
 
     specify('should support placeholder to specify "gaps"', function () {
-      const should = isNotNaNpolyfill(R.__);
+      const should = isNotNaNponyfill(R.__);
 
       assert.isFalse(should(NaN));
     });
diff --git a/test/isNotNumber.js b/test/isNotNumber.js
index dd1a618e76..85a213cab7 100644
--- a/test/isNotNumber.js
+++ b/test/isNotNumber.js
@@ -2,8 +2,8 @@ import { assert } from 'chai';
 import * as R from 'ramda';
 
 import * as RA from '../src';
-import MAX_SAFE_INTEGER from '../src/internal/polyfills/Number.MAX_SAFE_INTEGER';
-import MIN_SAFE_INTEGER from '../src/internal/polyfills/Number.MIN_SAFE_INTEGER';
+import MAX_SAFE_INTEGER from '../src/internal/ponyfills/Number.MAX_SAFE_INTEGER';
+import MIN_SAFE_INTEGER from '../src/internal/ponyfills/Number.MIN_SAFE_INTEGER';
 import args from './shared/arguments';
 import Symbol from './shared/Symbol';
 
diff --git a/test/isNotValidNumber.js b/test/isNotValidNumber.js
index c4fd57e7d0..aceabfd9c9 100644
--- a/test/isNotValidNumber.js
+++ b/test/isNotValidNumber.js
@@ -2,8 +2,8 @@ import { assert } from 'chai';
 import * as R from 'ramda';
 
 import * as RA from '../src';
-import MAX_SAFE_INTEGER from '../src/internal/polyfills/Number.MAX_SAFE_INTEGER';
-import MIN_SAFE_INTEGER from '../src/internal/polyfills/Number.MIN_SAFE_INTEGER';
+import MAX_SAFE_INTEGER from '../src/internal/ponyfills/Number.MAX_SAFE_INTEGER';
+import MIN_SAFE_INTEGER from '../src/internal/ponyfills/Number.MIN_SAFE_INTEGER';
 import args from './shared/arguments';
 import Symbol from './shared/Symbol';
 
diff --git a/test/isNumber.js b/test/isNumber.js
index bdd0922e02..d4b3992771 100644
--- a/test/isNumber.js
+++ b/test/isNumber.js
@@ -2,8 +2,8 @@ import { assert } from 'chai';
 import * as R from 'ramda';
 
 import * as RA from '../src';
-import MAX_SAFE_INTEGER from '../src/internal/polyfills/Number.MAX_SAFE_INTEGER';
-import MIN_SAFE_INTEGER from '../src/internal/polyfills/Number.MIN_SAFE_INTEGER';
+import MAX_SAFE_INTEGER from '../src/internal/ponyfills/Number.MAX_SAFE_INTEGER';
+import MIN_SAFE_INTEGER from '../src/internal/ponyfills/Number.MIN_SAFE_INTEGER';
 import args from './shared/arguments';
 import Symbol from './shared/Symbol';
 
diff --git a/test/isOdd.js b/test/isOdd.js
index 71d9bdb79e..fc133518ae 100644
--- a/test/isOdd.js
+++ b/test/isOdd.js
@@ -2,8 +2,8 @@ import { assert } from 'chai';
 import * as R from 'ramda';
 
 import * as RA from '../src';
-import MAX_SAFE_INTEGER from '../src/internal/polyfills/Number.MAX_SAFE_INTEGER';
-import MIN_SAFE_INTEGER from '../src/internal/polyfills/Number.MIN_SAFE_INTEGER';
+import MAX_SAFE_INTEGER from '../src/internal/ponyfills/Number.MAX_SAFE_INTEGER';
+import MIN_SAFE_INTEGER from '../src/internal/ponyfills/Number.MIN_SAFE_INTEGER';
 import args from './shared/arguments';
 import Symbol from './shared/Symbol';
 
diff --git a/test/isPositive.js b/test/isPositive.js
index a69d552c6c..ea1a582b9d 100644
--- a/test/isPositive.js
+++ b/test/isPositive.js
@@ -2,8 +2,8 @@ import { assert } from 'chai';
 import * as R from 'ramda';
 
 import * as RA from '../src';
-import MAX_SAFE_INTEGER from '../src/internal/polyfills/Number.MAX_SAFE_INTEGER';
-import MIN_SAFE_INTEGER from '../src/internal/polyfills/Number.MIN_SAFE_INTEGER';
+import MAX_SAFE_INTEGER from '../src/internal/ponyfills/Number.MAX_SAFE_INTEGER';
+import MIN_SAFE_INTEGER from '../src/internal/ponyfills/Number.MIN_SAFE_INTEGER';
 import args from './shared/arguments';
 import Symbol from './shared/Symbol';
 
diff --git a/test/isSafeInteger.js b/test/isSafeInteger.js
index 93e9d33d4d..ff147ce249 100644
--- a/test/isSafeInteger.js
+++ b/test/isSafeInteger.js
@@ -2,8 +2,8 @@ import { assert } from 'chai';
 import * as R from 'ramda';
 
 import * as RA from '../src';
-import { isSafeIntegerPolyfill } from '../src/isSafeInteger';
-import MAX_SAFE_INTEGER from '../src/internal/polyfills/Number.MAX_SAFE_INTEGER';
+import { isSafeIntegerPonyfill } from '../src/isSafeInteger';
+import MAX_SAFE_INTEGER from '../src/internal/ponyfills/Number.MAX_SAFE_INTEGER';
 
 describe('isSafeInteger', function () {
   context('given a safe integer', function () {
@@ -36,33 +36,33 @@ describe('isSafeInteger', function () {
     assert.isTrue(isSafeInteger(3));
   });
 
-  context('isSafeIntegerPolyfill', function () {
+  context('isSafeIntegerPonyfill', function () {
     context('given a safe integer', function () {
       specify('should return true', function () {
-        assert.isTrue(isSafeIntegerPolyfill(3));
-        assert.isTrue(isSafeIntegerPolyfill(MAX_SAFE_INTEGER));
-        assert.isTrue(isSafeIntegerPolyfill(3.0));
+        assert.isTrue(isSafeIntegerPonyfill(3));
+        assert.isTrue(isSafeIntegerPonyfill(MAX_SAFE_INTEGER));
+        assert.isTrue(isSafeIntegerPonyfill(3.0));
       });
     });
 
     context('given not safe integer', function () {
       specify('should return false', function () {
-        assert.isFalse(isSafeIntegerPolyfill(MAX_SAFE_INTEGER + 1));
-        assert.isFalse(isSafeIntegerPolyfill(NaN));
-        assert.isFalse(isSafeIntegerPolyfill(Infinity));
-        assert.isFalse(isSafeIntegerPolyfill('3'));
-        assert.isFalse(isSafeIntegerPolyfill(3.1));
-        assert.isFalse(isSafeIntegerPolyfill('string'));
-        assert.isFalse(isSafeIntegerPolyfill(null));
-        assert.isFalse(isSafeIntegerPolyfill(undefined));
-        assert.isFalse(isSafeIntegerPolyfill({}));
-        assert.isFalse(isSafeIntegerPolyfill(() => {}));
-        assert.isFalse(isSafeIntegerPolyfill(true));
+        assert.isFalse(isSafeIntegerPonyfill(MAX_SAFE_INTEGER + 1));
+        assert.isFalse(isSafeIntegerPonyfill(NaN));
+        assert.isFalse(isSafeIntegerPonyfill(Infinity));
+        assert.isFalse(isSafeIntegerPonyfill('3'));
+        assert.isFalse(isSafeIntegerPonyfill(3.1));
+        assert.isFalse(isSafeIntegerPonyfill('string'));
+        assert.isFalse(isSafeIntegerPonyfill(null));
+        assert.isFalse(isSafeIntegerPonyfill(undefined));
+        assert.isFalse(isSafeIntegerPonyfill({}));
+        assert.isFalse(isSafeIntegerPonyfill(() => {}));
+        assert.isFalse(isSafeIntegerPonyfill(true));
       });
     });
 
     specify('should support placeholder to specify "gaps"', function () {
-      const isSafeInteger = isSafeIntegerPolyfill(R.__);
+      const isSafeInteger = isSafeIntegerPonyfill(R.__);
 
       assert.isTrue(isSafeInteger(3));
     });
diff --git a/test/isValidNumber.js b/test/isValidNumber.js
index 5a3e2d3d2f..09b767a139 100644
--- a/test/isValidNumber.js
+++ b/test/isValidNumber.js
@@ -2,8 +2,8 @@ import { assert } from 'chai';
 import * as R from 'ramda';
 
 import * as RA from '../src';
-import MAX_SAFE_INTEGER from '../src/internal/polyfills/Number.MAX_SAFE_INTEGER';
-import MIN_SAFE_INTEGER from '../src/internal/polyfills/Number.MIN_SAFE_INTEGER';
+import MAX_SAFE_INTEGER from '../src/internal/ponyfills/Number.MAX_SAFE_INTEGER';
+import MIN_SAFE_INTEGER from '../src/internal/ponyfills/Number.MIN_SAFE_INTEGER';
 import args from './shared/arguments';
 import Symbol from './shared/Symbol';
 
diff --git a/test/padCharsEnd.js b/test/padCharsEnd.js
index 0d698ec3b2..91a5054ab3 100644
--- a/test/padCharsEnd.js
+++ b/test/padCharsEnd.js
@@ -1,7 +1,7 @@
 import { assert } from 'chai';
 
 import * as RA from '../src';
-import { padEndInvoker, padEndPolyfill } from '../src/padCharsEnd';
+import { padEndInvoker, padEndPonyfill } from '../src/padCharsEnd';
 
 describe('padCharsEnd', function () {
   specify('should pad string with given padString', function () {
@@ -144,20 +144,20 @@ describe('padCharsEnd', function () {
     });
   });
 
-  context('padEndPolyfill', function () {
+  context('padEndPonyfill', function () {
     specify('should pad string with given padString', function () {
-      assert.strictEqual(padEndPolyfill('-', 3, 'a'), 'a--');
+      assert.strictEqual(padEndPonyfill('-', 3, 'a'), 'a--');
     });
 
     context('given targetLength as 0', function () {
       specify('should return original string', function () {
-        assert.strictEqual(padEndPolyfill('$', 0, 'abc'), 'abc');
+        assert.strictEqual(padEndPonyfill('$', 0, 'abc'), 'abc');
       });
     });
 
     context('given targetLength less than string length', function () {
       specify('should return original string', function () {
-        assert.strictEqual(padEndPolyfill('$', 1, 'abc'), 'abc');
+        assert.strictEqual(padEndPonyfill('$', 1, 'abc'), 'abc');
       });
     });
 
@@ -165,15 +165,15 @@ describe('padCharsEnd', function () {
       'given targetLength less than equal to padString length',
       function () {
         specify('should trim padString', function () {
-          assert.strictEqual(padEndPolyfill('123456', 6, 'abc'), 'abc123');
-          assert.strictEqual(padEndPolyfill('123456', 5, 'abc'), 'abc12');
+          assert.strictEqual(padEndPonyfill('123456', 6, 'abc'), 'abc123');
+          assert.strictEqual(padEndPonyfill('123456', 5, 'abc'), 'abc12');
         });
       }
     );
 
     context('given targetLength supplied as float', function () {
       specify('should convert targetLength to integer', function () {
-        assert.strictEqual(padEndPolyfill('$', 7.5, 'abc'), 'abc$$$$');
+        assert.strictEqual(padEndPonyfill('$', 7.5, 'abc'), 'abc$$$$');
       });
     });
 
@@ -181,34 +181,34 @@ describe('padCharsEnd', function () {
       'given targetLength is a value coercible to valid integer number',
       function () {
         specify('should return padded string', function () {
-          assert.strictEqual(padEndPolyfill('*', '5', 'abc'), 'abc**');
+          assert.strictEqual(padEndPonyfill('*', '5', 'abc'), 'abc**');
         });
       }
     );
 
     context('given targeLength is a negative number', function () {
       specify('should return original string', function () {
-        assert.strictEqual(padEndPolyfill('$', -10, 'abc'), 'abc');
+        assert.strictEqual(padEndPonyfill('$', -10, 'abc'), 'abc');
       });
     });
 
     context('given padString set to undefined', function () {
       specify('should return string padded with spaces', function () {
-        assert.strictEqual(padEndPolyfill(undefined, 5, '200'), '200  ');
+        assert.strictEqual(padEndPonyfill(undefined, 5, '200'), '200  ');
       });
     });
 
     context('given null padString', function () {
       specify('should convert null to string type', function () {
-        assert.strictEqual(padEndPolyfill(null, 5, 'abc'), 'abcnu');
+        assert.strictEqual(padEndPonyfill(null, 5, 'abc'), 'abcnu');
       });
     });
 
     specify('should be curried', function () {
-      assert.strictEqual(padEndPolyfill('*', 5, 'abc'), 'abc**');
-      assert.strictEqual(padEndPolyfill('*', 5)('abc'), 'abc**');
-      assert.strictEqual(padEndPolyfill('*')(5, 'abc'), 'abc**');
-      assert.strictEqual(padEndPolyfill('*')(5)('abc'), 'abc**');
+      assert.strictEqual(padEndPonyfill('*', 5, 'abc'), 'abc**');
+      assert.strictEqual(padEndPonyfill('*', 5)('abc'), 'abc**');
+      assert.strictEqual(padEndPonyfill('*')(5, 'abc'), 'abc**');
+      assert.strictEqual(padEndPonyfill('*')(5)('abc'), 'abc**');
     });
   });
 });
diff --git a/test/padCharsStart.js b/test/padCharsStart.js
index 2383fba5c8..e9f5ec6b36 100644
--- a/test/padCharsStart.js
+++ b/test/padCharsStart.js
@@ -1,7 +1,7 @@
 import { assert } from 'chai';
 
 import * as RA from '../src';
-import { padStartInvoker, padStartPolyfill } from '../src/padCharsStart';
+import { padStartInvoker, padStartPonyfill } from '../src/padCharsStart';
 
 describe('padCharsStart', function () {
   specify('should pad string with given padString', function () {
@@ -144,20 +144,20 @@ describe('padCharsStart', function () {
     });
   });
 
-  context('padStartPolyfill', function () {
+  context('padStartPonyfill', function () {
     specify('should pad string with given padString', function () {
-      assert.strictEqual(padStartPolyfill('-', 3, 'a'), '--a');
+      assert.strictEqual(padStartPonyfill('-', 3, 'a'), '--a');
     });
 
     context('given targetLength as 0', function () {
       specify('should return original string', function () {
-        assert.strictEqual(padStartPolyfill('-', 0, 'abc'), 'abc');
+        assert.strictEqual(padStartPonyfill('-', 0, 'abc'), 'abc');
       });
     });
 
     context('given targetLength less than string length', function () {
       specify('should return original string', function () {
-        assert.strictEqual(padStartPolyfill('-', 1, 'abc'), 'abc');
+        assert.strictEqual(padStartPonyfill('-', 1, 'abc'), 'abc');
       });
     });
 
@@ -165,15 +165,15 @@ describe('padCharsStart', function () {
       'given targetLength less than equal to padString length',
       function () {
         specify('should trim padString', function () {
-          assert.strictEqual(padStartPolyfill('123456', 6, 'abc'), '123abc');
-          assert.strictEqual(padStartPolyfill('123456', 5, 'abc'), '12abc');
+          assert.strictEqual(padStartPonyfill('123456', 6, 'abc'), '123abc');
+          assert.strictEqual(padStartPonyfill('123456', 5, 'abc'), '12abc');
         });
       }
     );
 
     context('given targetLength supplied as float', function () {
       specify('should convert targetLength to integer', function () {
-        assert.strictEqual(padStartPolyfill('-', 7.5, 'abc'), '----abc');
+        assert.strictEqual(padStartPonyfill('-', 7.5, 'abc'), '----abc');
       });
     });
 
@@ -181,34 +181,34 @@ describe('padCharsStart', function () {
       'given targetLength is a value coercible to valid integer number',
       function () {
         specify('should return padded string', function () {
-          assert.strictEqual(padStartPolyfill('-', '5', 'abc'), '--abc');
+          assert.strictEqual(padStartPonyfill('-', '5', 'abc'), '--abc');
         });
       }
     );
 
     context('given targeLength is a negative number', function () {
       specify('should return original string', function () {
-        assert.strictEqual(padStartPolyfill('-', -10, 'abc'), 'abc');
+        assert.strictEqual(padStartPonyfill('-', -10, 'abc'), 'abc');
       });
     });
 
     context('given padString set to undefined', function () {
       specify('should return string padded with spaces', function () {
-        assert.strictEqual(padStartPolyfill(undefined, 5, '200'), '  200');
+        assert.strictEqual(padStartPonyfill(undefined, 5, '200'), '  200');
       });
     });
 
     context('given null padString', function () {
       specify('should convert null to string type', function () {
-        assert.strictEqual(padStartPolyfill(null, 5, 'abc'), 'nuabc');
+        assert.strictEqual(padStartPonyfill(null, 5, 'abc'), 'nuabc');
       });
     });
 
     specify('should be curried', function () {
-      assert.strictEqual(padStartPolyfill('-', 5, 'abc'), '--abc');
-      assert.strictEqual(padStartPolyfill('-', 5)('abc'), '--abc');
-      assert.strictEqual(padStartPolyfill('-')(5, 'abc'), '--abc');
-      assert.strictEqual(padStartPolyfill('-')(5)('abc'), '--abc');
+      assert.strictEqual(padStartPonyfill('-', 5, 'abc'), '--abc');
+      assert.strictEqual(padStartPonyfill('-', 5)('abc'), '--abc');
+      assert.strictEqual(padStartPonyfill('-')(5, 'abc'), '--abc');
+      assert.strictEqual(padStartPonyfill('-')(5)('abc'), '--abc');
     });
   });
 });
diff --git a/test/repeatStr.js b/test/repeatStr.js
index c709924bb7..4738737553 100644
--- a/test/repeatStr.js
+++ b/test/repeatStr.js
@@ -1,7 +1,7 @@
 import { assert } from 'chai';
 
 import * as RA from '../src';
-import { repeatStrInvoker, repeatStrPolyfill } from '../src/repeatStr';
+import { repeatStrInvoker, repeatStrPonyfill } from '../src/repeatStr';
 
 describe('repeatStr', function () {
   specify('should repeat string n times', function () {
@@ -108,53 +108,53 @@ describe('repeatStr', function () {
     });
   });
 
-  context('repeatStrPolyfill', function () {
+  context('repeatStrPonyfill', function () {
     specify('should repeat string n times', function () {
-      assert.strictEqual(repeatStrPolyfill('abc', 3), 'abcabcabc');
+      assert.strictEqual(repeatStrPonyfill('abc', 3), 'abcabcabc');
     });
 
     context('given count 0', function () {
       specify('should return empty string', function () {
-        assert.strictEqual(repeatStrPolyfill('abc', 0), '');
+        assert.strictEqual(repeatStrPonyfill('abc', 0), '');
       });
     });
 
     context('given count 1', function () {
       specify('should return original string', function () {
-        assert.strictEqual(repeatStrPolyfill('abc', 1), 'abc');
+        assert.strictEqual(repeatStrPonyfill('abc', 1), 'abc');
       });
     });
 
     context('given count supplied as float', function () {
       specify('should convert count to integer', function () {
-        assert.strictEqual(repeatStrPolyfill('abc', 3.5), 'abcabcabc');
+        assert.strictEqual(repeatStrPonyfill('abc', 3.5), 'abcabcabc');
       });
     });
 
     context('given count is negative number', function () {
       specify('should throw RangeError', function () {
-        assert.throws(() => repeatStrPolyfill('abc', -1), RangeError);
+        assert.throws(() => repeatStrPonyfill('abc', -1), RangeError);
       });
     });
 
     context('given count is Infinity', function () {
       specify('should throw RangeError', function () {
-        assert.throws(() => repeatStrPolyfill('abc', 1 / 0), RangeError);
+        assert.throws(() => repeatStrPonyfill('abc', 1 / 0), RangeError);
       });
     });
 
     context('given count is not a number', function () {
       specify('should return empty string', function () {
-        assert.strictEqual(repeatStrPolyfill('abc', 'a'), '');
-        assert.strictEqual(repeatStrPolyfill('abc', null), '');
-        assert.strictEqual(repeatStrPolyfill('abc', undefined), '');
-        assert.strictEqual(repeatStrPolyfill('abc', NaN), '');
+        assert.strictEqual(repeatStrPonyfill('abc', 'a'), '');
+        assert.strictEqual(repeatStrPonyfill('abc', null), '');
+        assert.strictEqual(repeatStrPonyfill('abc', undefined), '');
+        assert.strictEqual(repeatStrPonyfill('abc', NaN), '');
       });
     });
 
     specify('should be curried', function () {
-      assert.strictEqual(repeatStrPolyfill('abc', 3.5), 'abcabcabc');
-      assert.strictEqual(repeatStrPolyfill('abc')(3.5), 'abcabcabc');
+      assert.strictEqual(repeatStrPonyfill('abc', 3.5), 'abcabcabc');
+      assert.strictEqual(repeatStrPonyfill('abc')(3.5), 'abcabcabc');
     });
   });
 });
diff --git a/test/replaceAll.js b/test/replaceAll.js
index 2f9228519f..1919768394 100644
--- a/test/replaceAll.js
+++ b/test/replaceAll.js
@@ -1,7 +1,7 @@
 import { assert } from 'chai';
 
 import * as RA from '../src';
-import { replaceAllPolyfill, replaceAllInvoker } from '../src/replaceAll';
+import { replaceAllPonyfill, replaceAllInvoker } from '../src/replaceAll';
 
 describe('replaceAll', function () {
   it('should replace all matches', function () {
@@ -118,16 +118,16 @@ describe('replaceAll', function () {
     });
   });
 
-  context('replaceAllPolyfill', function () {
+  context('replaceAllPonyfill', function () {
     context('given searchValue is a non-global RegExp', function () {
       specify('should throw Error', function () {
-        assert.throws(() => replaceAllPolyfill(/a/, 'c', 'abc'), TypeError);
+        assert.throws(() => replaceAllPonyfill(/a/, 'c', 'abc'), TypeError);
       });
     });
 
     specify('should support global RegExp searchValue', function () {
       const value = 'xxx';
-      const actual = replaceAllPolyfill(/x/g, 'v', value);
+      const actual = replaceAllPonyfill(/x/g, 'v', value);
       const expected = 'vvv';
 
       assert.strictEqual(actual, expected);
@@ -135,7 +135,7 @@ describe('replaceAll', function () {
 
     specify('should support empty searchValue', function () {
       const value = 'xxx';
-      const actual = replaceAllPolyfill('', '_', value);
+      const actual = replaceAllPonyfill('', '_', value);
       const expected = '_x_x_x_';
 
       assert.strictEqual(actual, expected);
@@ -143,7 +143,7 @@ describe('replaceAll', function () {
 
     specify('should replace all matches', function () {
       const value = 'ab cd ab cd ab cd';
-      const actual = replaceAllPolyfill('ab', 'ef', value);
+      const actual = replaceAllPonyfill('ab', 'ef', value);
       const expected = 'ef cd ef cd ef cd';
 
       assert.strictEqual(actual, expected);
@@ -151,7 +151,7 @@ describe('replaceAll', function () {
 
     context('given empty string', function () {
       specify('should return original value', function () {
-        assert.strictEqual(replaceAllPolyfill('a', 'c', ''), '');
+        assert.strictEqual(replaceAllPonyfill('a', 'c', ''), '');
       });
     });
 
@@ -159,7 +159,7 @@ describe('replaceAll', function () {
       const value = new String('ab cd ab cd ab cd');
       const searchValue = new String('ab');
       const replaceValue = new String('ef');
-      const actual = replaceAllPolyfill(searchValue, replaceValue, value);
+      const actual = replaceAllPonyfill(searchValue, replaceValue, value);
       const expected = 'ef cd ef cd ef cd';
 
       assert.strictEqual(actual, expected);
@@ -168,16 +168,16 @@ describe('replaceAll', function () {
     specify('should replace in very big strings', function () {
       const bigString = 'ab cd'.repeat(10000);
       const expected = 'ab ef'.repeat(10000);
-      const actual = replaceAllPolyfill('cd', 'ef', bigString);
+      const actual = replaceAllPonyfill('cd', 'ef', bigString);
 
       assert.strictEqual(actual, expected);
     });
 
     specify('should be curried', function () {
-      assert.strictEqual(replaceAllPolyfill('a', 'c', 'aba'), 'cbc');
-      assert.strictEqual(replaceAllPolyfill('a')('c', 'aba'), 'cbc');
-      assert.strictEqual(replaceAllPolyfill('a', 'c')('aba'), 'cbc');
-      assert.strictEqual(replaceAllPolyfill('a')('c')('aba'), 'cbc');
+      assert.strictEqual(replaceAllPonyfill('a', 'c', 'aba'), 'cbc');
+      assert.strictEqual(replaceAllPonyfill('a')('c', 'aba'), 'cbc');
+      assert.strictEqual(replaceAllPonyfill('a', 'c')('aba'), 'cbc');
+      assert.strictEqual(replaceAllPonyfill('a')('c')('aba'), 'cbc');
     });
   });
 });
diff --git a/test/sign.js b/test/sign.js
index fe954168b0..7235a75b7d 100644
--- a/test/sign.js
+++ b/test/sign.js
@@ -3,7 +3,7 @@ import { assert } from 'chai';
 
 import * as RA from '../src';
 import Symbol from './shared/Symbol';
-import { signPolyfill } from '../src/sign';
+import { signPonyfill } from '../src/sign';
 
 describe('sign', function () {
   it('should return proper sign result', function () {
@@ -85,7 +85,7 @@ describe('sign', function () {
     assert.strictEqual(sign(0.9), 1);
   });
 
-  context('signPolyfill', function () {
+  context('signPonyfill', function () {
     before(function () {
       if (RA.isNotFunction(Math.sign)) {
         this.skip();
@@ -93,43 +93,43 @@ describe('sign', function () {
     });
 
     specify('should return proper sign result', function () {
-      assert.strictEqual(signPolyfill(3), 1);
-      assert.strictEqual(signPolyfill(3.3), 1);
-      assert.strictEqual(signPolyfill(-3), -1);
-      assert.strictEqual(signPolyfill(-3.3), -1);
-      assert.strictEqual(signPolyfill(0), 0);
-      assert.strictEqual(signPolyfill(-0), -0);
+      assert.strictEqual(signPonyfill(3), 1);
+      assert.strictEqual(signPonyfill(3.3), 1);
+      assert.strictEqual(signPonyfill(-3), -1);
+      assert.strictEqual(signPonyfill(-3.3), -1);
+      assert.strictEqual(signPonyfill(0), 0);
+      assert.strictEqual(signPonyfill(-0), -0);
     });
 
     context('given number in string', function () {
       specify('should return proper sign', function () {
-        assert.strictEqual(signPolyfill('-1.123'), -1);
-        assert.strictEqual(signPolyfill('1.123'), 1);
+        assert.strictEqual(signPonyfill('-1.123'), -1);
+        assert.strictEqual(signPonyfill('1.123'), 1);
       });
     });
 
     context('given integer number', function () {
       specify('should return original integer number', function () {
-        assert.strictEqual(signPolyfill(0), 0);
-        assert.strictEqual(signPolyfill(1), 1);
-        assert.strictEqual(signPolyfill(-1), -1);
+        assert.strictEqual(signPonyfill(0), 0);
+        assert.strictEqual(signPonyfill(1), 1);
+        assert.strictEqual(signPonyfill(-1), -1);
       });
     });
 
     context('given value that is not a number', function () {
       specify('should return NaN', function () {
-        assert.isNaN(signPolyfill(undefined));
-        assert.isNaN(signPolyfill(NaN));
-        assert.isNaN(signPolyfill({}));
-        assert.isNaN(signPolyfill(/a/));
-        assert.isNaN(signPolyfill('test'));
-        assert.isNaN(signPolyfill(new Error()));
+        assert.isNaN(signPonyfill(undefined));
+        assert.isNaN(signPonyfill(NaN));
+        assert.isNaN(signPonyfill({}));
+        assert.isNaN(signPonyfill(/a/));
+        assert.isNaN(signPonyfill('test'));
+        assert.isNaN(signPonyfill(new Error()));
       });
     });
 
     context('given null', function () {
       specify('should return 0', function () {
-        assert.strictEqual(signPolyfill(null), 0);
+        assert.strictEqual(signPonyfill(null), 0);
       });
     });
 
@@ -144,7 +144,7 @@ describe('sign', function () {
         }
 
         if (shouldThrow) {
-          assert.throw(() => signPolyfill(Symbol('')));
+          assert.throw(() => signPonyfill(Symbol('')));
         }
       });
     });
@@ -153,15 +153,15 @@ describe('sign', function () {
       specify(
         'should return the number of milliseconds elapsed since January 1, 1970 00:00:00 UTC',
         function () {
-          assert.strictEqual(signPolyfill(new Date(2)), 1);
+          assert.strictEqual(signPonyfill(new Date(2)), 1);
         }
       );
     });
 
     context('given Infinity value', function () {
       specify('should return proper sign', function () {
-        assert.strictEqual(signPolyfill(Infinity), 1);
-        assert.strictEqual(signPolyfill(-Infinity), -1);
+        assert.strictEqual(signPonyfill(Infinity), 1);
+        assert.strictEqual(signPonyfill(-Infinity), -1);
       });
     });
 
diff --git a/test/toArray.js b/test/toArray.js
index b01a324d10..21513c420a 100644
--- a/test/toArray.js
+++ b/test/toArray.js
@@ -2,7 +2,7 @@ import { assert } from 'chai';
 import * as R from 'ramda';
 
 import * as RA from '../src';
-import { fromPolyfill } from '../src/toArray';
+import { fromPonyfill } from '../src/toArray';
 
 describe('toArray', function () {
   const assertIsEmptyArray = (val) => {
@@ -77,10 +77,10 @@ describe('toArray', function () {
     assert.sameOrderedMembers(toArray([1, 2, 3]), [1, 2, 3]);
   });
 
-  context('fromPolyfill', function () {
+  context('fromPonyfill', function () {
     context('given an object', function () {
       specify('should return values', function () {
-        const actual = fromPolyfill({ foo: 1, bar: 2 });
+        const actual = fromPonyfill({ foo: 1, bar: 2 });
 
         assertIsEmptyArray(actual);
       });
@@ -92,7 +92,7 @@ describe('toArray', function () {
         map.set('0', 'foo');
         map.set(1, 'bar');
 
-        const actual = fromPolyfill(map);
+        const actual = fromPonyfill(map);
 
         assert.sameDeepOrderedMembers(actual, [
           ['0', 'foo'],
@@ -103,7 +103,7 @@ describe('toArray', function () {
       specify('should convert a set into an array', function () {
         const set = new Set([1, 2, 3]);
 
-        const actual = fromPolyfill(set);
+        const actual = fromPonyfill(set);
 
         assert.sameOrderedMembers(actual, [1, 2, 3]);
       });
@@ -112,21 +112,21 @@ describe('toArray', function () {
         const object = { '0': 'a', length: 1 };
         object[Symbol.iterator] = Array.prototype[Symbol.iterator];
 
-        const actual = fromPolyfill(object);
+        const actual = fromPonyfill(object);
 
         assert.sameOrderedMembers(actual, ['a']);
       });
 
       specify('should return shallow copy of array', function () {
         const array = [1, 2];
-        const actual = fromPolyfill(array);
+        const actual = fromPonyfill(array);
 
         assert.sameOrderedMembers(actual, [1, 2]);
         assert.notStrictEqual(actual, array);
       });
 
       specify('should return string as array', function () {
-        assert.sameOrderedMembers(fromPolyfill('abc'), ['a', 'b', 'c']);
+        assert.sameOrderedMembers(fromPonyfill('abc'), ['a', 'b', 'c']);
       });
     });
 
@@ -140,9 +140,9 @@ describe('toArray', function () {
     });
 
     specify('should support placeholder to specify "gaps"', function () {
-      const toArrayPolyfill = fromPolyfill(R.__);
+      const toArrayPonyfill = fromPonyfill(R.__);
 
-      assert.sameOrderedMembers(toArrayPolyfill([1, 2, 3]), [1, 2, 3]);
+      assert.sameOrderedMembers(toArrayPonyfill([1, 2, 3]), [1, 2, 3]);
     });
   });
 });
diff --git a/test/toInteger32.js b/test/toInteger32.js
new file mode 100644
index 0000000000..055b32517f
--- /dev/null
+++ b/test/toInteger32.js
@@ -0,0 +1,61 @@
+import * as R from 'ramda';
+import { assert } from 'chai';
+
+import * as RA from '../src';
+
+describe('toInteger32', function () {
+  context('given a small integer', function () {
+    specify('should maintain the same value', function () {
+      assert.strictEqual(RA.toInteger32(1), 1);
+    });
+
+    specify('should preserve the sign', function () {
+      assert.strictEqual(RA.toInteger32(-1), -1);
+    });
+  });
+
+  context('given an integer 23^2 + 1', function () {
+    specify('should return 1', function () {
+      const initialValue = 2 ** 32 + 1;
+      assert.strictEqual(RA.toInteger32(initialValue), 1);
+    });
+  });
+
+  context('given an integer 23^2 - 1', function () {
+    specify('should return -1', function () {
+      const initialValue = 2 ** 32 - 1;
+      assert.strictEqual(RA.toInteger32(initialValue), -1);
+    });
+  });
+
+  context('given invalid input', function () {
+    specify('should return 0', function () {
+      assert.strictEqual(RA.toInteger32(false), 0);
+      assert.strictEqual(RA.toInteger32([]), 0);
+      assert.strictEqual(RA.toInteger32(null), 0);
+      assert.strictEqual(RA.toInteger32(NaN), 0);
+      assert.strictEqual(RA.toInteger32(/a/), 0);
+      assert.strictEqual(RA.toInteger32({}), 0);
+      assert.strictEqual(RA.toInteger32(new Error()), 0);
+    });
+  });
+
+  context('given Infinity value', function () {
+    specify('should return 0', function () {
+      assert.strictEqual(RA.toInteger32(Infinity), 0);
+      assert.strictEqual(RA.toInteger32(-Infinity), 0);
+    });
+  });
+
+  it('should support placeholder to specify "gaps"', function () {
+    const toInteger32 = RA.toInteger32(R.__);
+
+    assert.strictEqual(toInteger32(1.2), 1);
+  });
+
+  describe('toInt32', function () {
+    it('should be alias of seq', function () {
+      assert.strictEqual(RA.toInt32, RA.toInteger32);
+    });
+  });
+});
diff --git a/test/trimEnd.js b/test/trimEnd.js
index 8f45e6d9da..40da5e18ca 100644
--- a/test/trimEnd.js
+++ b/test/trimEnd.js
@@ -2,7 +2,7 @@ import { assert } from 'chai';
 import * as R from 'ramda';
 
 import * as RA from '../src';
-import { trimEndInvoker, trimEndPolyfill } from '../src/trimEnd';
+import { trimEndInvoker, trimEndPonyfill } from '../src/trimEnd';
 
 describe('trimEnd', function () {
   it('should remove whitespace from the end of a string', function () {
@@ -68,32 +68,32 @@ describe('trimEnd', function () {
     });
   });
 
-  context('trimEndPolyfill', function () {
+  context('trimEndPonyfill', function () {
     specify('should remove whitespace from the end of a string', function () {
-      assert.strictEqual(trimEndPolyfill('abc   '), 'abc');
+      assert.strictEqual(trimEndPonyfill('abc   '), 'abc');
     });
 
     specify(
       'should not remove whitespace from the rest of the string',
       function () {
-        assert.strictEqual(trimEndPolyfill(' a b c'), ' a b c');
+        assert.strictEqual(trimEndPonyfill(' a b c'), ' a b c');
       }
     );
 
     context('given an empty string', function () {
       specify('should return an empty string', function () {
-        assert.strictEqual(trimEndPolyfill(''), '');
+        assert.strictEqual(trimEndPonyfill(''), '');
       });
     });
 
     context('given an string with whitespaces only', function () {
       specify('should return an empty string', function () {
-        assert.strictEqual(trimEndPolyfill('   '), '');
+        assert.strictEqual(trimEndPonyfill('   '), '');
       });
     });
 
     specify('should support placeholder to specify "gaps"', function () {
-      const trimEnd = trimEndPolyfill(R.__);
+      const trimEnd = trimEndPonyfill(R.__);
 
       assert.strictEqual(trimEnd('abc   '), 'abc');
     });
diff --git a/test/trimStart.js b/test/trimStart.js
index a98c39fbf3..23084713f7 100644
--- a/test/trimStart.js
+++ b/test/trimStart.js
@@ -2,7 +2,7 @@ import { assert } from 'chai';
 import * as R from 'ramda';
 
 import * as RA from '../src';
-import { trimStartInvoker, trimStartPolyfill } from '../src/trimStart';
+import { trimStartInvoker, trimStartPonyfill } from '../src/trimStart';
 
 describe('trimStart', function () {
   it('should remove whitespace from the beginning of a string', function () {
@@ -71,35 +71,35 @@ describe('trimStart', function () {
     });
   });
 
-  context('trimStartPolyfill', function () {
+  context('trimStartPonyfill', function () {
     specify(
       'should remove whitespace from the beginning of a string',
       function () {
-        assert.strictEqual(trimStartPolyfill('  abc'), 'abc');
+        assert.strictEqual(trimStartPonyfill('  abc'), 'abc');
       }
     );
 
     specify(
       'should not remove whitespace from the rest of the string',
       function () {
-        assert.strictEqual(trimStartPolyfill('a b c '), 'a b c ');
+        assert.strictEqual(trimStartPonyfill('a b c '), 'a b c ');
       }
     );
 
     context('given an empty string', function () {
       specify('should return an empty string', function () {
-        assert.strictEqual(trimStartPolyfill(''), '');
+        assert.strictEqual(trimStartPonyfill(''), '');
       });
     });
 
     context('given an string with whitespaces only', function () {
       specify('should return an empty string', function () {
-        assert.strictEqual(trimStartPolyfill('   '), '');
+        assert.strictEqual(trimStartPonyfill('   '), '');
       });
     });
 
     specify('should support placeholder to specify "gaps"', function () {
-      const trimStart = trimStartPolyfill(R.__);
+      const trimStart = trimStartPonyfill(R.__);
 
       assert.strictEqual(trimStart('  abc'), 'abc');
     });
diff --git a/test/trunc.js b/test/trunc.js
index 82ea4ef7da..3ee26ba6fd 100644
--- a/test/trunc.js
+++ b/test/trunc.js
@@ -3,7 +3,7 @@ import { assert } from 'chai';
 
 import * as RA from '../src';
 import Symbol from './shared/Symbol';
-import { truncPolyfill } from '../src/trunc';
+import { truncPonyfill } from '../src/trunc';
 
 describe('trunc', function () {
   it('should truncate fractional digits', function () {
@@ -82,7 +82,7 @@ describe('trunc', function () {
     assert.strictEqual(trunc(0.9), 0);
   });
 
-  context('truncPolyfill', function () {
+  context('truncPonyfill', function () {
     before(function () {
       if (RA.isNotFunction(Math.trunc)) {
         this.skip();
@@ -90,40 +90,40 @@ describe('trunc', function () {
     });
 
     specify('should truncate fractional digits', function () {
-      assert.strictEqual(truncPolyfill(13.37), 13);
-      assert.strictEqual(truncPolyfill(42.84), 42);
-      assert.strictEqual(truncPolyfill(0.123), 0);
-      assert.strictEqual(truncPolyfill(-0.123), -0);
+      assert.strictEqual(truncPonyfill(13.37), 13);
+      assert.strictEqual(truncPonyfill(42.84), 42);
+      assert.strictEqual(truncPonyfill(0.123), 0);
+      assert.strictEqual(truncPonyfill(-0.123), -0);
     });
 
     context('given number in string', function () {
       specify('should truncate fractional digits', function () {
-        assert.strictEqual(truncPolyfill('-1.123'), -1);
+        assert.strictEqual(truncPonyfill('-1.123'), -1);
       });
     });
 
     context('given integer number', function () {
       specify('should return original integer number', function () {
-        assert.strictEqual(truncPolyfill(0), 0);
-        assert.strictEqual(truncPolyfill(1), 1);
-        assert.strictEqual(truncPolyfill(-1), -1);
+        assert.strictEqual(truncPonyfill(0), 0);
+        assert.strictEqual(truncPonyfill(1), 1);
+        assert.strictEqual(truncPonyfill(-1), -1);
       });
     });
 
     context('given value that is not a number', function () {
       specify('should return NaN', function () {
-        assert.isNaN(truncPolyfill(undefined));
-        assert.isNaN(truncPolyfill(NaN));
-        assert.isNaN(truncPolyfill({}));
-        assert.isNaN(truncPolyfill(/a/));
-        assert.isNaN(truncPolyfill('test'));
-        assert.isNaN(truncPolyfill(new Error()));
+        assert.isNaN(truncPonyfill(undefined));
+        assert.isNaN(truncPonyfill(NaN));
+        assert.isNaN(truncPonyfill({}));
+        assert.isNaN(truncPonyfill(/a/));
+        assert.isNaN(truncPonyfill('test'));
+        assert.isNaN(truncPonyfill(new Error()));
       });
     });
 
     context('given null', function () {
       specify('should return 0', function () {
-        assert.strictEqual(truncPolyfill(null), 0);
+        assert.strictEqual(truncPonyfill(null), 0);
       });
     });
 
@@ -138,7 +138,7 @@ describe('trunc', function () {
         }
 
         if (shouldThrow) {
-          assert.throw(() => truncPolyfill(Symbol('')));
+          assert.throw(() => truncPonyfill(Symbol('')));
         }
       });
     });
@@ -147,20 +147,20 @@ describe('trunc', function () {
       specify(
         'should return the number of milliseconds elapsed since January 1, 1970 00:00:00 UTC',
         function () {
-          assert.strictEqual(truncPolyfill(new Date(2)), 2);
+          assert.strictEqual(truncPonyfill(new Date(2)), 2);
         }
       );
     });
 
     context('given Infinity value', function () {
       specify('should return untouched Infinity value', function () {
-        assert.strictEqual(truncPolyfill(Infinity), Infinity);
-        assert.strictEqual(truncPolyfill(-Infinity), -Infinity);
+        assert.strictEqual(truncPonyfill(Infinity), Infinity);
+        assert.strictEqual(truncPonyfill(-Infinity), -Infinity);
       });
     });
 
     specify('should support placeholder to specify "gaps"', function () {
-      const trunc = truncPolyfill(R.__);
+      const trunc = truncPonyfill(R.__);
 
       assert.strictEqual(trunc(0.9), 0);
     });
diff --git a/types/test/toInteger32.ts b/types/test/toInteger32.ts
new file mode 100644
index 0000000000..f722b45ff5
--- /dev/null
+++ b/types/test/toInteger32.ts
@@ -0,0 +1,13 @@
+import * as RA from 'ramda-adjunct';
+
+RA.toInteger32(1); // $ExpectType number
+RA.toInteger32(Infinity); // $ExpectType number
+RA.toInteger32(-Infinity); // $ExpectType number
+RA.toInteger32(+Infinity); // $ExpectType number
+RA.toInteger32(NaN); // $ExpectType number
+RA.toInteger32({}); // $ExpectError
+RA.toInteger32('s'); // $ExpectError
+RA.toInteger32([]); // $ExpectError
+
+RA.toInt32(1); // $ExpectType number
+RA.toInt32('s'); // $ExpectError