"Can't unify" and "Can't convert" are terrible error messages for
programmers, and particularly confusing to explain to beginners, because
programmers don't need to know that implementation detail.
Changed to "type mismatch" and updated docs accordingly.
Doing so breaks typechecking, leading to nothing working any more...
passing them to lifted 'where' definitions counts as a use in the
typechecker, so *any* where clause will fail to typecheck.
This is an effect of how 'where' clauses are elaborated, and is probably
not the best behaviour (though it is better than the default which rules
our where clauses completely) so we should revisit it later if
uniqueness typing turns out to work effectively.