# Contributor handoff — gcanti/fp-ts

> Canonical page: https://codevetter.com/unpack/fp-ts/agent-handoff

# Contributor handoff — gcanti/fp-ts

Scanned commit c0a6472121c67a2b083e62fcff13e7d022e39d8f (2026-04-20). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Begin with the affected public module, its shared helpers, runtime tests, and type assertions. Preserve inferred types, laziness, branch behavior, and compatibility aliases when making small changes. Tests and CI were inspected, not executed; any later validation must report actual commands and outcomes separately. This inventory is bounded and should guide targeted investigation rather than substitute for complete coverage.
- Read package.json, tsconfig.json, and vite.config.ts first: they distinguish source compilation, global test typing, runtime discovery, and the multi-stage npm test command. — [package.json#L9-L27](https://github.com/gcanti/fp-ts/blob/c0a6472121c67a2b083e62fcff13e7d022e39d8f/package.json#L9-L27) [tsconfig.json#L2-L28](https://github.com/gcanti/fp-ts/blob/c0a6472121c67a2b083e62fcff13e7d022e39d8f/tsconfig.json#L2-L28) [vite.config.ts#L4-L12](https://github.com/gcanti/fp-ts/blob/c0a6472121c67a2b083e62fcff13e7d022e39d8f/vite.config.ts#L4-L12)
- Consumer code is expected to enable strict TypeScript and import individual fp-ts/<module> paths; the README also requires a single installed fp-ts version. — [README.md#L72-L76](https://github.com/gcanti/fp-ts/blob/c0a6472121c67a2b083e62fcff13e7d022e39d8f/README.md#L72-L76) [docs/guides/getting-started.md#L26-L35](https://github.com/gcanti/fp-ts/blob/c0a6472121c67a2b083e62fcff13e7d022e39d8f/docs/guides/getting-started.md#L26-L35) [docs/guides/code-conventions.md#L24-L38](https://github.com/gcanti/fp-ts/blob/c0a6472121c67a2b083e62fcff13e7d022e39d8f/docs/guides/code-conventions.md#L24-L38)
- Follow established syntax and checks: no semicolons, single quotes, width 120, no trailing commas; ESLint requires sorted imports, rejects import cycles, and forbids spread arguments to Array.push. — [.prettierrc#L1-L6](https://github.com/gcanti/fp-ts/blob/c0a6472121c67a2b083e62fcff13e7d022e39d8f/.prettierrc#L1-L6) [.eslintrc.json#L25-L37](https://github.com/gcanti/fp-ts/blob/c0a6472121c67a2b083e62fcff13e7d022e39d8f/.eslintrc.json#L25-L37)
- For combinator edits, distinguish data-last public functions from instance adapters and dual overloads; preserve W widening, K lifting, E effectful matching, and constrained C instance conventions. — [src/function.ts#L773-L790](https://github.com/gcanti/fp-ts/blob/c0a6472121c67a2b083e62fcff13e7d022e39d8f/src/function.ts#L773-L790) [src/TaskEither.ts#L535-L538](https://github.com/gcanti/fp-ts/blob/c0a6472121c67a2b083e62fcff13e7d022e39d8f/src/TaskEither.ts#L535-L538) [docs/guides/code-conventions.md#L108-L110](https://github.com/gcanti/fp-ts/blob/c0a6472121c67a2b083e62fcff13e7d022e39d8f/docs/guides/code-conventions.md#L108-L110) [docs/guides/code-conventions.md#L198-L206](https://github.com/gcanti/fp-ts/blob/c0a6472121c67a2b083e62fcff13e7d022e39d8f/docs/guides/code-conventions.md#L198-L206)
- A new public source module needs barrel exposure: test/index.ts derives expected export names from source files, and scripts/build.ts derives module manifests from emitted JavaScript, with HKT handled specially. — [test/index.ts#L7-L27](https://github.com/gcanti/fp-ts/blob/c0a6472121c67a2b083e62fcff13e7d022e39d8f/test/index.ts#L7-L27) [test/index.ts#L30-L40](https://github.com/gcanti/fp-ts/blob/c0a6472121c67a2b083e62fcff13e7d022e39d8f/test/index.ts#L30-L40) [scripts/build.ts#L40-L76](https://github.com/gcanti/fp-ts/blob/c0a6472121c67a2b083e62fcff13e7d022e39d8f/scripts/build.ts#L40-L76)
- Keep @since/@category documentation and compatibility exports deliberate: TaskEither's deprecated taskEither/taskEitherSeq dictionaries remain exported, with guidance to prefer smaller instances; docs-ts excludes internal.ts. — [src/TaskEither.ts#L1778-L1817](https://github.com/gcanti/fp-ts/blob/c0a6472121c67a2b083e62fcff13e7d022e39d8f/src/TaskEither.ts#L1778-L1817) [src/Option.ts#L137-L151](https://github.com/gcanti/fp-ts/blob/c0a6472121c67a2b083e62fcff13e7d022e39d8f/src/Option.ts#L137-L151) [docs-ts.json#L1-L3](https://github.com/gcanti/fp-ts/blob/c0a6472121c67a2b083e62fcff13e7d022e39d8f/docs-ts.json#L1-L3)
- Tests and CI were inspected, not executed. For later authorized validation, the existing Vitest script can target the affected test file, dtslint checks signature inference, and npm test runs the full configured chain; coverage is a separate command. — [package.json#L14-L27](https://github.com/gcanti/fp-ts/blob/c0a6472121c67a2b083e62fcff13e7d022e39d8f/package.json#L14-L27) [vite.config.ts#L6-L10](https://github.com/gcanti/fp-ts/blob/c0a6472121c67a2b083e62fcff13e7d022e39d8f/vite.config.ts#L6-L10) [dtslint/TaskEither.ts#L13-L36](https://github.com/gcanti/fp-ts/blob/c0a6472121c67a2b083e62fcff13e7d022e39d8f/dtslint/TaskEither.ts#L13-L36) [.github/workflows/main.yml#L26-L28](https://github.com/gcanti/fp-ts/blob/c0a6472121c67a2b083e62fcff13e7d022e39d8f/.github/workflows/main.yml#L26-L28)
- Execution traps include prebuild deleting dist, postbuild rewriting generated declarations, npm test generating docs, and release publishing to npm; read-only onboarding must inspect these definitions without invoking them. — [package.json#L14-L24](https://github.com/gcanti/fp-ts/blob/c0a6472121c67a2b083e62fcff13e7d022e39d8f/package.json#L14-L24) [scripts/build.ts#L79-L97](https://github.com/gcanti/fp-ts/blob/c0a6472121c67a2b083e62fcff13e7d022e39d8f/scripts/build.ts#L79-L97) [scripts/release.ts#L22-L26](https://github.com/gcanti/fp-ts/blob/c0a6472121c67a2b083e62fcff13e7d022e39d8f/scripts/release.ts#L22-L26)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
