
#14266: AllowAmbiguousTypes doesn't play well with default class methods -------------------------------------+------------------------------------- Reporter: chris-martin | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.0.2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by RyanGlScott): Replying to [comment:5 chris-martin]:
Thanks Ryan - yes that's a great description of what I was trying to do. One correction: I'm pretty sure `MultiMonoid` alone ''does'' require `AllowAmbiguousTypes` even before you get to `MultiFoldable`.
Ah, good point. I suppose the distinction I was making in the back of my mind was that in `MultiMonoid`, the ambiguity comes from a type variable from the //class//, whereas in `MultiFoldable`, the ambiguity comes from a type variable from a //method// (`multi'foldMap`). I believe the former can coexist with `DefaultSignatures`, whereas the latter cannot (as this bug demonstrates).
It was an extended thought experiment more than anything, probably beyond the bounds of reasonable Haskell.
I think you're selling your idea short! The only reason this code would have been considered unreasonable in the past is due to the lack of `TypeApplications`, but now that it's an established thing, the scope of what's considered "reasonable" code has increased drastically. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14266#comment:6 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler