
26 Apr
2008
26 Apr
'08
2:36 a.m.
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. How can I accomplish my goal of asserting the type of x, as a programmer sanity check, when there are type variables? Thanks, --ken