In GameLogic.fs we've got MoveTracker, the entry point into the game loop, then the helper classes such as MoveExecutor and MoveValidator. These should be internal types, only MoveTracker needs to be accessible.
type internal MyType and type private MyType work in F# so we can apply the correct accessibility (and ensure internals are visible to the unit tests).
[x] Seperate application project from command line interface
[x] Mark non exportable types as internal
[x] Make internals visible to the unit tests project
In
GameLogic.fs
we've gotMoveTracker
, the entry point into the game loop, then the helper classes such asMoveExecutor
andMoveValidator
. These should be internal types, onlyMoveTracker
needs to be accessible.type internal MyType
andtype private MyType
work in F# so we can apply the correct accessibility (and ensure internals are visible to the unit tests).