#4401: Functional dependencies regression ---------------------------------+------------------------------------------ Reporter: rl | Owner: Type: bug | Status: new Priority: normal | Component: Compiler Version: 7.1 | Keywords: Testcase: | Blockedby: Os: Unknown/Multiple | Blocking: Architecture: Unknown/Multiple | Failure: None/Unknown ---------------------------------+------------------------------------------ Testcase:
{{{ {-# LANGUAGE FlexibleInstances, UndecidableInstances, MultiParamTypeClasses, FunctionalDependencies #-} module Foo where class Mul x y z | x y -> z class IsType a class IsType a => IsSized a s | a -> s data Array n a = Array instance IsSized a s => IsType (Array n a) instance (IsSized a s, Mul n s ns) => IsSized (Array n a) ns }}} ghc-7.0.0.20101014 rejects this with: {{{ Couldn't match type `s' with `s1' because this skolem type variable would escape: `s1' This skolem is bound by the instance declaration In the instance declaration for `IsSized (Array n a) ns' }}} ghc-7.0.0.20101005 and all previous versions accept it. This is from the llvm package, so is fairly critical. -- Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/4401> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler _______________________________________________ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs