Added data definition types.
Added type inference code.