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 Int
s 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?