M. Widera. An Algorithm for Checking the Disjointness of Types. In Manuel Serrano, editor, Proceedings of the Second Workshop on Scheme and Functional Programming, 2001.
We describe an algorithm approximating the following question: Given two types t1 and t2, are there instances sigma(t1) and sigma(t2) denoting a common element? By answering this question we solve a main problem towards a type checking algorithm for non-disjoint types that raises an error just for function calls that cannot be executed successfully for any input arguments. For dynamically typed functional languages as e.g. Scheme such a type checker can extend current soft typing systems in order to reject provably ill-typed programs.
Available: PS, PDF, BibTeX