Fp Ts Ramda Save

Ramda functions reimplemented in fp-ts

Project README

(WIP!) fp-ts-ramda

Some Ramda functions reimplemented using fp-ts.

Since the question "how do I implement x from Ramda in fp-ts" comes up pretty often

Contribution guidelines

Each function should:

  • be API compatible with the original Ramda function (as far as possible, see below)
  • come with a property-based test to verify such compatibility (see other tests as an example)
  • be typesafe (or even improve on the status of @types/ramda, if possible)
  • come with a few typelevel tests (see other tests as an example)
  • be non deprecated in Ramda

More specific notes regarding implementation choices

[TODO] API compatibility with Ramda

For some Ramda functions, 100% API compatibility is easy to obtain. For others (typically the ones relying on instances of some typeclass), it's difficult or nearly impossible without compromising type-safety.

Currying

All Ramda functions are "auto curried". Since an objective is to remain mostly API-compatible, translations must be curried too.

Each function should have a series of TS overloads making all the possible combinations of parameters well-typed, and be implemented using manual currying: see for instance adjust.ts. Manual currying is preferred in order to avoid compromising perf, but might be revisited in the future.

Out of scope

A few things I haven't considered up to now and/or not sure how to handle:

  • the R.__ placeholder
  • "Acts as a transducer if a transformer is given..."
  • "Dispatches to the X method of argument, if present."
Open Source Agenda is not affiliated with "Fp Ts Ramda" Project. README Source: giogonzo/fp-ts-ramda
Stars
138
Open Issues
4
Last Commit
3 years ago
License
MIT

Open Source Agenda Badge

Open Source Agenda Rating