All algebraic data types are enumerable, so I want to assign a natural number to any algebraic data type. And then I want to assign a natural number to every instance of that type.

So I need bijection.