consistency in what types are exposed to user code