# Properties and Structure

A research question

In Haskell we can statically force “structure” on values. An Int is requried to support negate. But we can’t statically force “properties” on values. We can’t, for example, require at compile time two Ints to be equal.

Do these notions of “structure” and “properties” correspond to those for categories, explained in Stuff, structure, and properties? (Forget about the “stuff” for now). What, then, is the forgetful functor?