diff options
Diffstat (limited to 'testsuite/tests/rebindable/rebindable8.hs')
-rw-r--r-- | testsuite/tests/rebindable/rebindable8.hs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/testsuite/tests/rebindable/rebindable8.hs b/testsuite/tests/rebindable/rebindable8.hs new file mode 100644 index 0000000000..2c1f484f47 --- /dev/null +++ b/testsuite/tests/rebindable/rebindable8.hs @@ -0,0 +1,26 @@ +{-# LANGUAGE RebindableSyntax, MultiParamTypeClasses #-} + +-- Trac #1537 + +module Foo where +import Prelude hiding (Monad(..)) + +class Bind m1 m2 m3 where + (>>=) :: m1 a -> (a -> m2 b) -> m3 b + +class Return m where + return :: a -> m a + fail :: String -> m a + +instance Bind Maybe [] [] where + Just x >>= f = f x + Nothing >>= f = [] + +instance Return [] where + return x = [x] + fail _ = [] + +should_compile :: [Int] +should_compile = do + a <- Just 1 + [a] |