Changing (most of) these parameters from their default values would not have worked without adding explicit template parameters to e.g. recursive calls.