diff options
Diffstat (limited to 'testsuite/tests/ghc-regress/typecheck/should_run/tcrun010.hs')
-rw-r--r-- | testsuite/tests/ghc-regress/typecheck/should_run/tcrun010.hs | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/testsuite/tests/ghc-regress/typecheck/should_run/tcrun010.hs b/testsuite/tests/ghc-regress/typecheck/should_run/tcrun010.hs deleted file mode 100644 index 7621f4d4e0..0000000000 --- a/testsuite/tests/ghc-regress/typecheck/should_run/tcrun010.hs +++ /dev/null @@ -1,44 +0,0 @@ -{-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies #-} - --- !!! Functional dependencies --- This one gave "zonkIdOcc: FunDep_a11w" in earlier days - -module Main (main) where - -data ERR a b = EOK a | ERR b deriving (Show) -data Error = No | Notatall deriving (Show, Eq) - - -class MonadErr m e | m -> e where - aerturn :: e -> m a - areturn :: a -> m a - acatch :: a -> (a -> m b) -> (e -> m b) -> m b - (>>>=) :: m a -> (a -> m b) -> m b - (>>>) :: m a -> m b -> m b - -data BP a = BP (Int -> (ERR a Error, Int)) - -instance MonadErr BP Error where - aerturn k = BP $ \s -> (ERR k, s) - areturn k = BP $ \s -> (EOK k, s) - acatch k try handler = BP $ \s -> let BP try' = try k - (r,s1) = try' s - (BP c2, s2) = case r of - EOK r -> (areturn r, s1) - ERR r -> (handler r, s) - in c2 s2 - a >>> b = a >>>= \_ -> b - - (BP c1) >>>= fc2 = BP $ \s0 -> let (r,s1) = c1 s0 - BP c2 = case r of - EOK r -> fc2 r - ERR r -> BP (\s -> (ERR r, s)) - in c2 s1 - -run_BP :: Int -> BP a -> (ERR a Error, Int) -run_BP st (BP bp) = bp st - -foo :: (ERR Int Error, Int) -foo = run_BP 111 (aerturn No) - -main = print (show foo) |