Type-level integers, booleans, lists using type families

Version on this page:
LTS Haskell 22.29:1.0.2
Stackage Nightly 2024-07-13:1.0.2
Latest on Hackage:1.0.2

See all snapshots tfp appears in

BSD-3-Clause licensed by Peter Gavin, Henning Thielemann
Maintained by [email protected]
This version can be pinned in stack with:tfp-,2042
Depends on 2 packages(full list with versions):
Used by 3 packages in lts-14.27(full list with versions):

TFP is an abbreviation for Type Family Programming. It provides implementations of type-level integers and booleans, and (eventually) simple type-level data structures. It uses type families as functions to produce new types, which provides an intuitive way to parameterize data types and functions on numerical values at compile time.



  • Change representation of decimals to an inherently normalized form that is symmetric with respect to positive and negative numbers.

  • singularize module names

  • separate Decimal and general representation

  • use Proxys instead of plain types for data functions This is also consistent with new Nat kind, where types of kind Nat have no data values.

  • Ord: make infix operators classes and prefix functions type functions It seems to be more natural to me to write x :<: y and GTT x y ~ True

  • Num, Bool, Ord: remove T suffixes from functions Use qualification instead.