reverting to using code-defined types as bases for data defined types