- = do { (binds, thing) <- tc_haskell98 top_lvl sig_fn prag_fn NonRecursive binds thing_inside
- ; return ([(NonRecursive, b) | b <- binds], thing) }
+ = do { (binds1, lie_binds, thing) <- tc_haskell98 top_lvl sig_fn prag_fn
+ NonRecursive binds thing_inside
+ ; return ( [(NonRecursive, unitBag b) | b <- bagToList binds1]
+ ++ [(Recursive, lie_binds)] -- TcDictBinds have scrambled dependency order
+ , thing) }