# ROADMAP

- [ ] Unit tests

- [ ] Better README

- [ ] `debounce = (delay, immediate, fn) => { /* ... */ };` [Pareto.js](https://github.com/concretesolutions/pareto.js/#debounce) | [David Walsh](https://davidwalsh.name/javascript-debounce-function) | [Juan Vega](https://www.freecodecamp.org/news/debounce-explained-how-to-make-your-javascript-wait-for-your-user-to-finish-typing-2/)

- [ ] `int = (val) => (n << 0) === n;`

- [ ] `modulo = (mod, val) => val % mod;` [Ramda.js](https://ramdajs.com/docs/#modulo)

- [ ] `noop = () => {};`

- [ ] `pow = (exp, val) => Math.pow(val, exp);`

- [ ] `even = (arg: number) => arg % 2 === 0`

- [ ] `odd = (arg: number) => arg % 2 !== 0`

- [ ] `equals = (test: any, val?: any) => (val) ? val === test : curry<boolean>(test)`

- [ ] `always = (arg: any) => arg`

- [ ] `gte = (test: number, val?: number) => (val) ? val >= test : curry<boolean>(test)`

- [ ] `lte = (test: number, val?: number) => (val) ? val <= test : curry<boolean>(test)`

- [ ] Rename `or()` to `else()`?
