typeclass-design

Installation
SKILL.md

Typeclass Design Skill

Use this skill when implementing typeclasses that provide reusable abstractions across multiple types.

Pattern: Curried Typeclass Functions

All typeclass functions must be fully curried to enable partial application:

import { Duration } from "effect"

declare interface Durable<A> {
  readonly getDuration: (self: A) => Duration.Duration
}

// Create a typeclass function that takes the typeclass instance first,
// then curries out all other parameters
export const isMoreThan =
  <A>(D: Durable<A>) =>
Related skills

More from front-depiction/claude-setup

Installs
7
GitHub Stars
17
First Seen
Jan 24, 2026