TCLP is a prescriptive type system for Constraint Logic Programming, currently:
Sicstus Prolog and its libraries
Contraints programming libraries of Sicstus Prolog
Based on Typing Constraint Logic Programs by Franšois Fages and Emmanuel Coquery. Journal of Theory and Practice of Logic Programming TPLP 1(6)., pp. 751-777. November 2001. Available as ps.
TCLP uses 3 kind of polymorphism:
parametric polymorphism (e.g. : list(A))
subtyping (e.g. : list(A) < term)
overloading (also called adhoc polymorphism)
e.g.: '-'/2 can have type int * int -> int and type A * B -> pair(A,B)
No type declaration required !
type inference for predicates
default types for function symbols
Extensible to other dialects by providing types for built-ins
TCLP is implemented in Prolog/CHR.
What's New in This Release:
· This release added the possibility to add type aliases.
· That is, to declare and use names as shortcuts for types in type declarations.