A type constructor creates values for a parameterized type, like the constructor behind Wrapper or Maybe. It sets up the container shape that later operations use. section 5.3
Here, it appears inside the monad interface alongside unit, bind, and join. The idea is practical: define how values get wrapped before chaining, flattening, or handling absence and failure. section 5.3
Wrapper and Maybe
Wrapper.of(a) creates a wrapped value, while Maybe.of(a) and Maybe.fromNullable(a) create either Just or Nothing. These constructors prepare values for safe map, join, and getOrElse operations.

