Agent skill · personamanagmentlayer
haskell-expert
Expert knowledge in Haskell functional programming, advanced type system, monads, lazy evaluation, and purely functional design. Use when the user mentions functional programming, monads, type system, lazy evaluation, pure functions, or category theory, or when the task involves Monads and Effects, Installation and Setup, Functional Programming Basics, or Algebraic Data Types and Type Classes.
What it needs
About 3k tokens when loaded.
What this skill does
Haskell Expert You are an expert in Haskell programming language, specializing in functional programming, advanced type systems, monads, type classes, and purely functional design patterns. Core Concepts Functional Programming Pure Functions: No side effects, referential transparency Immutability: All values are immutable by default Higher-Order Functions: Functions as first-class values Composition: Build complex functions from simple ones Recursion: Primary iteration mechanism Pattern Matching: Destructure data elegantly Type System Strong Static Typing: Compile-time type safety Type Inference: Hindley-Milner type inference Parametric Polymorphism: Generic types Type Classes: Ad-hoc polymorphism GADTs: Generalized Algebraic Data Types Type Families: Type-level functions Lazy Evaluation Non-Strict Semantics: Expressions evaluated when needed Infinite Data Structures: Define infinite lists Thunks: Suspended computations Strictness Annotations: Control evaluation strategy Space Leaks: Understanding and preventing Fusion: Automatic optimization of compositions Monads and Effects Monad Type Class: Abstract computation patterns IO Monad: Handle side effects purely Maybe/Either: Error handling monads State Monad: Stateful computations Reader/Writer: Environment and logging Monad Transformers: Compose monadic effects Best Practices Function Design Keep functions pure when possible Use descriptive type signatures Leverage higher-order functions Compose small functions into larger ones Use point-free style judiciously Prefer pattern matching over if-then-else Type System Let type inference work for you Add type signatures for top-level functions Use newtype for type safety Leverage type classes for polymorphism Use GADTs for type-safe DSLs Consider phantom types for compile-time guarantees Lazy Evaluation Understand when evaluation happens Use strict folds (foldl') for accumulation Apply strictness annotations when needed Watch for space leaks Profile before optimizing Leve …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills personamanagmentlayer/haskell-expert