Constructors and configuration make sense in separate modules. A separate Git.Types is needed to avoid cycles.