BSD-3-Clause licensed by Peter Gavin, Henning Thielemann
Maintained by [email protected]
This version can be pinned in stack with:tfp-1.0.2@sha256:d73d7d5f504f1af210443fc241515156852c217e549f61741afe1e30ee28da67,2040
Depends on 2 packages(full list with versions):
Used by 4 packages in nightly-2024-07-23(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.