+lurkingRank2Err :: Name -> UniType -> SrcLoc -> Error
+lurkingRank2Err name ty locn
+ = addErrLoc locn "Illegal use of a non-Hindley-Milner variable" ( \ sty ->
+ ppAboves [
+ ppBesides [ppStr "The variable is `", ppr sty name, ppStr "'."],
+ ppStr "Its type does not have all its for-alls at the top",
+ ppBesides [ppStr "(the type is `", ppr sty ty, ppStr "'),"],
+ ppStr "nor is it a full application of a rank-2-typed variable.",
+ ppStr "(Most common cause: `_runST' or `_build' not applied to an argument.)"])
+
+----------------------------------------------------------------