Types: Add Distributive instances
RoughCal: Learn model