There are a number of choices to be made in the design of a type based usage analysis. Some of these are: * Should the analysis be monomorphic or have some degree of polymorphism? * What about subtyping? * How should the analysis deal with user defined algebraic data types? * Should it be a whole program analysis? Several researchers have speculated that these features are important but there has been a lack of empirical evidence. In this paper we present a systematic evaluation of each of these features in the context of a full scale implementation of a usage analysis for Haskell. Our measurements show that all features increase the precision. It is, however, not necessary to have them all to obtain an acceptable precision.