Haskell 98 phantom types to avoid unsafely passing dummy arguments