liquidhaskell-0.9.0.2.1: tests/pos/T1568.hs
module T1568 where
{-@ data IdentityT m a = IdentityT (m a) @-}
data IdentityT m a = IdentityT (m a)
class MyMonad m where
myReturn :: a -> m a
{-@
instance MyMonad (IdentityT m) where
myReturn :: a -> IdentityT m a
@-}
instance MyMonad (IdentityT m) where
myReturn = undefined
-- When using the real Monad class the error doesn't happen until return is
-- actually used for some reason
{-@ testMyReturn :: a -> IdentityT m a @-}
testMyReturn :: a -> IdentityT m a
testMyReturn x = myReturn x