On Apr 26, 2008, at 2:36 , Ken Takusagawa wrote:
But this does not:
foo::IO a;
foo = do{
(x::a) <- bar;
return x;};
Error message: A pattern type signature cannot bind scoped type
variables `a' unless the pattern has a rigid type context.
This works for me (in a slightly out of date HEAD) if I explicitly
forall the declaration as per the ghc manual (see section 8.7.6.3):
> bar :: forall b. IO b
> bar = return undefined -- just want a type for now
> foo :: forall a. IO a
> foo = do { (x :: a) <- bar; return x; }
--
brandon s. allbery [solaris,freebsd,perl,pugs,haskell] [EMAIL PROTECTED]
system administrator [openafs,heimdal,too many hats] [EMAIL PROTECTED]
electrical and computer engineering, carnegie mellon university KF8NH
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe