ifdef role inference - it's not available prior to GHC 7.8.