The recursive types in, e.g., Color make it basically impossible to write down the type of a program without concretizing it with a specific Terminal implementation. This in turn makes is basically impossible to write cross-platform code. At the same time I don't think these recursive types gain us any meaningful type safety. See if they can be removed without losing anything meaningful.
The recursive types in, e.g.,
Colormake it basically impossible to write down the type of a program without concretizing it with a specificTerminalimplementation. This in turn makes is basically impossible to write cross-platform code. At the same time I don't think these recursive types gain us any meaningful type safety. See if they can be removed without losing anything meaningful.