Why cannot inferred type signatures restrict (potentially) ambiguous type variables?