An abstract interpretation for ML equality kinds [chapter]

Carl A. Gunter, Elsa L. Gunter, David B. MacQueen
1991 Lecture Notes in Computer Science  
The definition of Standard ML provides a form of generic equality which is inferred for certain types, called equality types, on which it is possible to define a computable equality relation. However, the standard definition is incomplete in the sense that there are interesting and useful types which are not inferred to be equality types but which nevertheless have a computable equality relation. In this paper, a refinement of the Standard ML system of equality types is introduced and is proven
more » ... sound and complete with respect to the existence of a computable equality. The technique used here is based on an abstract interpretation of ML operators as monotone functions over a three point lattice. It is shown how the equality relation can be defined (as an ML program) from the definition of a type with our equality property. Finally, a sound, efficient algorithm for inferring the equality property which corrects the limitations of the standard definition in all cases of practical interest is demonstrated.
doi:10.1007/3-540-54415-1_43 fatcat:hzushtrz4bhfxdcz3cr2gyfere