GADTs for Type-Level Domain Logic

Using Generalized Algebraic Data Types (GADTs) in Haskell to encode domain-specific rules and state transitions.