Abstract
In this article we demonstrate 4 algorithms for calculating the maximal disjoint decomposition of a given set of types. We discuss some advantages and disadvantages of each, and compare their performance. We extended currently known work to describe an efficient algorithm for manipulating binary decision diagrams representing types in a programming language which supports subtyping viewed as subsets.