Warn if functions are exported whose types cannot be written
It should be possible to warn if a function is exported from a module whose type is hidden, and thus the function's type can't be written down directly by the user.
With the proliferation in type level programming in Haskell (and its use in libraries), situations can arise where functions are exported from a module which can be used, but whose type cannote be written, but where the type is complex enough that it really is required to write it down for the code to compile. This happened recently in the takusen library.
A warning for this situation would help authors of libraries avoid this situation.