3 ms·
Haskell has newtype for this purpose, with the benefit that the compiler removes the added overhead of the additional data type.
by greydius 11y ago
Haskell has newtype for this purpose, with the benefit that the compiler removes the added overhead of the additional data type.
- wickedshimmy 11y agoValue classes serve this purpose in Scala: `case class Id(id: Long) extends AnyVal` will have long-typed values at runtime (*mostly).
- Psyonic 11y agoIs *mostly even true? Given the list of restrictions here: http://docs.scala-lang.org/overviews/core/value-classes.html http://docs.scala-lang.org/overviews/core/value-classes.html It seems to me that you'd have to be fairly careful to have any confidence your not instantiating classes for them. Do you know if there are any compiler flags or other way to know if your value classes are working as expected?