The return type here is a little strange.  I'd go for `IO ()` to make it explicitly that nothing new is returned (since all that happens here is that the original stmt is returned unchanged.)