Evaluating types and determining instantiability of an instance