odd issue with IORef and contra-variance