support for inductive types.