diff options
Diffstat (limited to 'testsuite/tests/typecheck/should_compile/tc223.hs')
-rw-r--r-- | testsuite/tests/typecheck/should_compile/tc223.hs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/testsuite/tests/typecheck/should_compile/tc223.hs b/testsuite/tests/typecheck/should_compile/tc223.hs new file mode 100644 index 0000000000..bf04ba3910 --- /dev/null +++ b/testsuite/tests/typecheck/should_compile/tc223.hs @@ -0,0 +1,14 @@ +{-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies #-} +module Foo where + +-- This example suggested by Yitzchak Gale + +import Control.Monad.State +import Control.Monad.Error + +class Error e => Game b mv e | b -> mv e where + newBoard :: MonadState b m => m () + -- This method is unambiguous, because + -- m determines b (via a fundep in MonadState) + + |