How can one do something like [Turn-Based Games] Turn-Based Games in Typed Racket?
The trouble is that each game one might implement requires its own types for Side, GameState, and MoveChoice.
This presumably affects the types of all the methods in the package turn-based-games.
Turn-based-games gets away with this by being written in untyped Racket. Is there anything that would enable one to write games, or even turn-based games, in typed Racket?
I may be misunderstanding you here, but it sounds like this problem is solved by parameterized types. That is, if I want a type to depend on three other types that are specified separately, I can write (All (T U V) ... whatever my type is ...)
and my type can freely use T, U, and V. When a value of this type is used, any types can be used in place of T, U, and V.