rebindable6.hs:106:17: No instance for (HasSeq (IO a -> t0 -> IO b)) arising from a do statement The type variable `t0' is ambiguous Possible fix: add a type signature that fixes these type variable(s) Possible fix: add an instance declaration for (HasSeq (IO a -> t0 -> IO b)) In a stmt of a 'do' block: f In the expression: do { f; Just (b :: b) <- g; return b } In an equation for `test_do': test_do f g = do { f; Just (b :: b) <- g; return b } rebindable6.hs:107:17: No instances for (HasBind (IO (Maybe b) -> (Maybe b -> t1) -> t0), HasFail ([Prelude.Char] -> t1)) arising from a do statement The type variables `t0', `t1' are ambiguous Possible fix: add a type signature that fixes these type variable(s) Possible fix: add instance declarations for (HasBind (IO (Maybe b) -> (Maybe b -> t1) -> t0), HasFail ([Prelude.Char] -> t1)) In a stmt of a 'do' block: Just (b :: b) <- g In the expression: do { f; Just (b :: b) <- g; return b } In an equation for `test_do': test_do f g = do { f; Just (b :: b) <- g; return b } rebindable6.hs:108:17: No instance for (HasReturn (b -> t1)) arising from a use of `return' The type variable `t1' is ambiguous Possible fix: add a type signature that fixes these type variable(s) Possible fix: add an instance declaration for (HasReturn (b -> t1)) In a stmt of a 'do' block: return b In the expression: do { f; Just (b :: b) <- g; return b } In an equation for `test_do': test_do f g = do { f; Just (b :: b) <- g; return b }