¿Cómo?

La manera más simple para modelar un Type (programación funcional) simple es crear un wrapper con estructura de tipo record donde el único elemento es el primitivo que se pretende envolver. También se puede usar una estructura tipo enum con un solo valor.

No obstante, hay situaciones en las cuales hay que plantearse otras alternativas que permitan no tener problemas de rendimiento en contexto de necesidad de alta exigencia de computo. En estos casos podemos adoptar las siguientes estrategias:

  • Usar typealiases (si el lenguaje lo permite), lo malo es que se pierde esa capacidad en tiempo de compilación type-safed
  • Crear un type simple que represente una lista de elementos como el valor a envolver. Así se puede tener lo mejor de ambos mundos

¿Por qué?

Creando tipos simples asegura que no haya confusiones de tipo por accidente.

Por otro lado, normalmente, este tipo de tipos están normalmente constreñidos de alguna forma para cumplir rangos o un patrón (sobre el primitivo que usan) para hacer una perfecta representación de la realidad del dominio