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
}