`module type G = sig ... end`

Signature for graphs

`module type PLAYER = sig ... end`

Signature for graph add-ons: an initial vertex, final vertices and membership of vertices to either true or false, i.e. first or second player

`module type STRAT = sig ... end`

Signature for strategies: for a given state, the strategy tells which state to go to

`module Algo (G : G) (P : PLAYER with type vertex = G.vertex) (S : STRAT with type vertex = G.vertex) : sig ... end`

Implements strategy algorithms on graphs