Babysitter Type Theory
Expert skill in type theory foundations for implementing type systems including inference, checking, and subtyping
install
source · Clone the upstream repo
git clone https://github.com/a5c-ai/babysitter
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/a5c-ai/babysitter "$T" && mkdir -p ~/.claude/skills && cp -r "$T/library/specializations/programming-languages/skills/type-theory" ~/.claude/skills/a5c-ai-babysitter-type-theory && rm -rf "$T"
manifest:
library/specializations/programming-languages/skills/type-theory/SKILL.mdsource content
Type Theory Skill
Overview
Expert skill in type theory foundations for implementing type systems including inference, checking, and subtyping.
Capabilities
- Implement Hindley-Milner type inference with Algorithm W
- Implement constraint-based type inference with unification
- Design and implement bidirectional type checking
- Implement structural and nominal subtyping
- Handle variance (covariant, contravariant, invariant)
- Implement row polymorphism and record types
- Design flow-sensitive type narrowing
- Implement type error message generation
Target Processes
- type-system-implementation.js
- semantic-analysis.js
- generics-polymorphism.js
- effect-system-design.js
Dependencies
Academic type theory literature (TAPL, ATTAPL)
Usage Guidelines
- Algorithm Selection: Choose between HM inference and bidirectional checking based on language features
- Constraint Generation: Separate constraint generation from solving for cleaner implementation
- Error Localization: Track constraint origins for accurate error location
- Variance: Document variance rules explicitly for all generic positions
- Gradual Typing: Consider gradual typing for mixed typed/untyped codebases
Output Schema
{ "type": "object", "properties": { "inferenceAlgorithm": { "type": "string", "enum": ["hindley-milner", "bidirectional", "constraint-based", "flow-sensitive"] }, "subtypingKind": { "type": "string", "enum": ["structural", "nominal", "mixed"] }, "features": { "type": "array", "items": { "type": "string" } }, "generatedFiles": { "type": "array", "items": { "type": "string" } } } }