BSD-3-Clause licensed by Peter Gavin, Henning Thielemann

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.

Depends on 2 packages(full list with versions):
Used by 1 package in lts-16.16(full list with versions):