So I'm thinking that if the Type returned to you by TH contains free type variables, that might simply signify types that might be later refined. Simple.
But not very principled, because the type you see will depend on which order the type checker happens to do its work in.
I've got some alarm bells ringing here. It seems to me that any application that used this extra information would be very brittle - a small change in the code or, it seems, in the compiler could change something from working to not working or from being fast to being slow or <whatever benefit it is that the extra information gives you>. Maybe I just don't understand John's application enough? [Sorry John, I missed your IFL talk when it was moved to after the end of IFL.] -- Alastair