It’s sometimes useful if you’re implementing a generic interface and you don’t need something in your implementation. e.g.
module Disk_db : DB with type error = io_error
module Memory_db : DB with type error = empty
Then anyone using Memory_db specifically knows they don’t have to worry about handling errors.