{-# LANGUAGE RebindableSyntax, NPlusKPatterns #-}

module RebindableCase1 where
	{
--	import Prelude;
	import Prelude(String,undefined,Maybe(..), (==), (>=) );

	return :: a;
	return = undefined;

	infixl 1 >>=;
	(>>=) :: a;
	(>>=) = undefined;
	
	infixl 1 >>;
	(>>) :: a;
	(>>) = undefined;

	fail :: a;
	fail = undefined;

	fromInteger :: a;
	fromInteger = undefined;

	fromRational :: a;
	fromRational = undefined;

	negate :: a;
	negate = undefined;

	(-) :: a;
	(-) = undefined;


	test_do f g = do
		{
		f;
		Just a <- g;
		return a;
		};
	
	test_fromInteger = 1;
	
	test_fromRational = 0.5;

	test_negate a = - a;

	test_fromInteger_pattern 1 = undefined;
	test_fromInteger_pattern (-1) = undefined;
	test_fromInteger_pattern (a + 7) = a;

	test_fromRational_pattern 0.5 = undefined;
	test_fromRational_pattern (-0.5) = undefined;
	test_fromRational_pattern _ = undefined;
	}
