Making the Board module abstract
Types restructuring to avoid circular build and make Board.t abstract.
Testing of circular types
.gitignore