
26 Apr
2008
26 Apr
'08
5:09 a.m.
On Sat, 26 Apr 2008, Ken Takusagawa wrote:
This works (with -fglasgow-exts):
foo::IO Int; foo = do{ (x::Int) <- bar; return x;};
bar = undefined
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.
'asTypeOf' is the answer for Haskell98. You can also write your own helper functions which might simplify that for your use cases.