This repository provides a Haskell library for generating singleton types and promoted versions of data types and functions using Template Haskell. It enables dependently typed programming in Haskell by lifting term-level code to the type level and providing singleton types that mirror term-level values. The library is split into three packages: `singletons` (core functionality with broad GHC compatibility), `singletons-base` (promoted/singled versions of the base library), and `singletons-th` (Template Haskell machinery for code generation). Key features include automatic generation of defunctionalization symbols for higher-order type-level programming, derivation of type class instances for singleton types, and support for kind polymorphism.