Tiene sus orígenes en el algoritmo de tipos para el cálculo Lambda tipificado, el cual fue propuesto por Haskell B.