What are the practical and theoretical implications of the unit type and the unit value being the same or different entities?
For example, in Haskell the unit type and unit value are both spelled ()
. In ML, the unit type is spelled unit
and it's value is ()
.
Are there any problems that arise from either option? Are there any significant benefits perhaps to the soundness of the type-system or the ability to reason about programs?