#50: Hugs's implementation of defaulting does not conform to Haskell 98 --------------------------+------------------------------------------------- Reporter: guest | Owner: nobody Type: defect | Status: new Priority: minor | Milestone: Component: type system | Version: current Resolution: | Keywords: top level overloading --------------------------+------------------------------------------------- Changes (by ross): * milestone: next release => * component: hugs => type system * summary: Disparity between GHCi and Hugs: Outstanding context : Show b => Hugs's implementation of defaulting does not conform to Haskell 98 * version: 200503 => current Comment: This is a divergence of Hugs from Haskell 98 (documented in the User's Guide): Haskell 98 says to apply defaulting to the whole module, but Hugs applies it to binding groups. In the binding group {{{ showln = (++ "\n") . show }}} the MR applies. Hugs attempts to apply defaulting at this point, but fails because the constraint `Show a` is not defaultable under the Haskell 98 rules (section 4.3.4). Haskell 98 (and GHC) defer defaulting until after typing `main`, at which point `a` has been instantiated to `Int`, so defaulting is no longer required. -- Ticket URL: <http://hackage.haskell.org/trac/hugs/ticket/50> Hugs <http://www.haskell.org/hugs/> Hugs 98, an interpreter for Haskell