summaryrefslogtreecommitdiff
path: root/testsuite/tests/rebindable/rebindable5.hs
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/rebindable/rebindable5.hs')
-rw-r--r--testsuite/tests/rebindable/rebindable5.hs382
1 files changed, 191 insertions, 191 deletions
diff --git a/testsuite/tests/rebindable/rebindable5.hs b/testsuite/tests/rebindable/rebindable5.hs
index 94b3f4ef7a..3120ea1a90 100644
--- a/testsuite/tests/rebindable/rebindable5.hs
+++ b/testsuite/tests/rebindable/rebindable5.hs
@@ -2,195 +2,195 @@
MultiParamTypeClasses, FunctionalDependencies #-}
module Main where
- {
--- import Prelude;
- import qualified Prelude;
- import Prelude(String,undefined,Maybe(..),IO,putStrLn,
- Integer,(++),Rational, (==), (>=) );
-
- debugFunc :: String -> IO a -> IO a;
- debugFunc s ioa = (putStrLn ("++ " ++ s)) Prelude.>>
- (ioa Prelude.>>= (\a ->
- (putStrLn ("-- " ++ s)) Prelude.>> (Prelude.return a)
- ));
-
- infixl 1 >>=;
- infixl 1 >>;
-
- returnIO :: a -> IO a;
+ {
+-- import Prelude;
+ import qualified Prelude;
+ import Prelude(String,undefined,Maybe(..),IO,putStrLn,
+ Integer,(++),Rational, (==), (>=) );
+
+ debugFunc :: String -> IO a -> IO a;
+ debugFunc s ioa = (putStrLn ("++ " ++ s)) Prelude.>>
+ (ioa Prelude.>>= (\a ->
+ (putStrLn ("-- " ++ s)) Prelude.>> (Prelude.return a)
+ ));
+
+ infixl 1 >>=;
+ infixl 1 >>;
+
+ returnIO :: a -> IO a;
returnIO = Prelude.return;
-
- class HasReturn m where
- {
- return :: a -> m a;
- };
-
- class HasBind m n mn | m n -> mn, m mn -> n where
- {
- (>>=) :: m a -> (a -> n b) -> mn b;
- };
-
- class HasSeq m n mn | m n -> mn, m mn -> n where
- {
- (>>) :: m a -> n b -> mn b;
- };
-
- class HasFail m where
- {
- fail :: String -> m a;
- };
-
- instance HasReturn IO where
- {
- return a = debugFunc "return" (returnIO a);
- };
-
- instance HasBind IO IO IO where
- {
- (>>=) ma amb = debugFunc ">>=" ((Prelude.>>=) ma amb);
- };
-
- instance HasSeq IO IO IO where
- {
- (>>) ma mb = debugFunc ">>" ((Prelude.>>) ma mb);
- };
-
- instance HasFail IO where
- {
- fail s = debugFunc "fail" (returnIO undefined);
- -- fail s = debugFunc "fail" (Prelude.fail s);
- };
-
- class HasFromInteger a where
- {
- fromInteger :: a -> a;
- };
-
- instance HasFromInteger Integer where
- {
- fromInteger a = a Prelude.+ a Prelude.+ a Prelude.+ a Prelude.+ a; -- five times
- };
-
- class HasFromRational a where
- {
- fromRational :: a -> a;
- };
-
- instance HasFromRational Rational where
- {
- fromRational a = a Prelude.+ a Prelude.+ a; -- three times
- };
-
- class HasNegate a where
- {
- negate :: a -> a;
- };
-
- instance HasNegate Integer where
- {
- negate a = a; -- don't actually negate
- };
-
- instance HasNegate Rational where
- {
- negate a = a; -- don't actually negate
- };
-
- class HasMinus a where
- {
- (-) :: a -> a -> a;
- };
-
- instance HasMinus Rational where
- {
- (-) x y = y; -- changed function
- };
-
- instance HasMinus Integer where
- {
- (-) x y = y; -- changed function
- };
-
-
- test_do f g = do
- {
- f; -- >>
- Just a <- g; -- >>= (and fail if g returns Nothing)
- return a; -- return
- };
-
- test_fromInteger :: Integer;
- test_fromInteger = 27;
-
- test_fromRational :: Rational;
- test_fromRational = 31.5;
-
- test_negate :: Integer -> Integer;
- test_negate a = - a;
-
- test_fromInteger_pattern :: Integer -> String;
- test_fromInteger_pattern a@1 = "1=" ++ (Prelude.show a);
- test_fromInteger_pattern a@(-2) = "(-2)=" ++ (Prelude.show a);
- test_fromInteger_pattern (a + 7) = "(a + 7)=" ++ Prelude.show a;
-
- test_fromRational_pattern :: Rational -> String;
- test_fromRational_pattern a@0.5 = "0.5=" ++ (Prelude.show a);
- test_fromRational_pattern a@(-0.7) = "(-0.7)=" ++ (Prelude.show a);
- test_fromRational_pattern a = "_=" ++ (Prelude.show a);
-
-
- doTest :: String -> IO a -> IO ();
- doTest s ioa =
- (putStrLn ("start test " ++ s))
- Prelude.>>
- ioa
- Prelude.>>
- (putStrLn ("end test " ++ s));
-
- main :: IO ();
- main =
- (doTest "test_do failure"
- (test_do (returnIO ()) (returnIO Nothing))
- )
- Prelude.>>
- (doTest "test_do success"
- (test_do (returnIO ()) (returnIO (Just ())))
- )
- Prelude.>>
- (doTest "test_fromInteger"
- (putStrLn (Prelude.show test_fromInteger))
- )
- Prelude.>>
- (doTest "test_fromRational"
- (putStrLn (Prelude.show test_fromRational))
- )
- Prelude.>>
- (doTest "test_negate"
- (putStrLn (Prelude.show (test_negate 3)))
- )
- Prelude.>>
- (doTest "test_fromInteger_pattern 1"
- (putStrLn (test_fromInteger_pattern 1))
- )
- Prelude.>>
- (doTest "test_fromInteger_pattern (-2)"
- (putStrLn (test_fromInteger_pattern (-(2::Integer)::Integer)))
- )
- Prelude.>>
- (doTest "test_fromInteger_pattern 9"
- (putStrLn (test_fromInteger_pattern 9))
- )
- Prelude.>>
- (doTest "test_fromRational_pattern 0.5"
- (putStrLn (test_fromRational_pattern 0.5))
- )
- Prelude.>>
- (doTest "test_fromRational_pattern (-0.7)"
- (putStrLn (test_fromRational_pattern (-(0.7::Rational)::Rational)))
- )
- Prelude.>>
- (doTest "test_fromRational_pattern 1.7"
- (putStrLn (test_fromRational_pattern 1.7))
- )
- ;
- }
+
+ class HasReturn m where
+ {
+ return :: a -> m a;
+ };
+
+ class HasBind m n mn | m n -> mn, m mn -> n where
+ {
+ (>>=) :: m a -> (a -> n b) -> mn b;
+ };
+
+ class HasSeq m n mn | m n -> mn, m mn -> n where
+ {
+ (>>) :: m a -> n b -> mn b;
+ };
+
+ class HasFail m where
+ {
+ fail :: String -> m a;
+ };
+
+ instance HasReturn IO where
+ {
+ return a = debugFunc "return" (returnIO a);
+ };
+
+ instance HasBind IO IO IO where
+ {
+ (>>=) ma amb = debugFunc ">>=" ((Prelude.>>=) ma amb);
+ };
+
+ instance HasSeq IO IO IO where
+ {
+ (>>) ma mb = debugFunc ">>" ((Prelude.>>) ma mb);
+ };
+
+ instance HasFail IO where
+ {
+ fail s = debugFunc "fail" (returnIO undefined);
+ -- fail s = debugFunc "fail" (Prelude.fail s);
+ };
+
+ class HasFromInteger a where
+ {
+ fromInteger :: a -> a;
+ };
+
+ instance HasFromInteger Integer where
+ {
+ fromInteger a = a Prelude.+ a Prelude.+ a Prelude.+ a Prelude.+ a; -- five times
+ };
+
+ class HasFromRational a where
+ {
+ fromRational :: a -> a;
+ };
+
+ instance HasFromRational Rational where
+ {
+ fromRational a = a Prelude.+ a Prelude.+ a; -- three times
+ };
+
+ class HasNegate a where
+ {
+ negate :: a -> a;
+ };
+
+ instance HasNegate Integer where
+ {
+ negate a = a; -- don't actually negate
+ };
+
+ instance HasNegate Rational where
+ {
+ negate a = a; -- don't actually negate
+ };
+
+ class HasMinus a where
+ {
+ (-) :: a -> a -> a;
+ };
+
+ instance HasMinus Rational where
+ {
+ (-) x y = y; -- changed function
+ };
+
+ instance HasMinus Integer where
+ {
+ (-) x y = y; -- changed function
+ };
+
+
+ test_do f g = do
+ {
+ f; -- >>
+ Just a <- g; -- >>= (and fail if g returns Nothing)
+ return a; -- return
+ };
+
+ test_fromInteger :: Integer;
+ test_fromInteger = 27;
+
+ test_fromRational :: Rational;
+ test_fromRational = 31.5;
+
+ test_negate :: Integer -> Integer;
+ test_negate a = - a;
+
+ test_fromInteger_pattern :: Integer -> String;
+ test_fromInteger_pattern a@1 = "1=" ++ (Prelude.show a);
+ test_fromInteger_pattern a@(-2) = "(-2)=" ++ (Prelude.show a);
+ test_fromInteger_pattern (a + 7) = "(a + 7)=" ++ Prelude.show a;
+
+ test_fromRational_pattern :: Rational -> String;
+ test_fromRational_pattern a@0.5 = "0.5=" ++ (Prelude.show a);
+ test_fromRational_pattern a@(-0.7) = "(-0.7)=" ++ (Prelude.show a);
+ test_fromRational_pattern a = "_=" ++ (Prelude.show a);
+
+
+ doTest :: String -> IO a -> IO ();
+ doTest s ioa =
+ (putStrLn ("start test " ++ s))
+ Prelude.>>
+ ioa
+ Prelude.>>
+ (putStrLn ("end test " ++ s));
+
+ main :: IO ();
+ main =
+ (doTest "test_do failure"
+ (test_do (returnIO ()) (returnIO Nothing))
+ )
+ Prelude.>>
+ (doTest "test_do success"
+ (test_do (returnIO ()) (returnIO (Just ())))
+ )
+ Prelude.>>
+ (doTest "test_fromInteger"
+ (putStrLn (Prelude.show test_fromInteger))
+ )
+ Prelude.>>
+ (doTest "test_fromRational"
+ (putStrLn (Prelude.show test_fromRational))
+ )
+ Prelude.>>
+ (doTest "test_negate"
+ (putStrLn (Prelude.show (test_negate 3)))
+ )
+ Prelude.>>
+ (doTest "test_fromInteger_pattern 1"
+ (putStrLn (test_fromInteger_pattern 1))
+ )
+ Prelude.>>
+ (doTest "test_fromInteger_pattern (-2)"
+ (putStrLn (test_fromInteger_pattern (-(2::Integer)::Integer)))
+ )
+ Prelude.>>
+ (doTest "test_fromInteger_pattern 9"
+ (putStrLn (test_fromInteger_pattern 9))
+ )
+ Prelude.>>
+ (doTest "test_fromRational_pattern 0.5"
+ (putStrLn (test_fromRational_pattern 0.5))
+ )
+ Prelude.>>
+ (doTest "test_fromRational_pattern (-0.7)"
+ (putStrLn (test_fromRational_pattern (-(0.7::Rational)::Rational)))
+ )
+ Prelude.>>
+ (doTest "test_fromRational_pattern 1.7"
+ (putStrLn (test_fromRational_pattern 1.7))
+ )
+ ;
+ }