
Is there a way to newtype a constraint? Imagine a type class parameterised over constraints. What do I do if I want multiple instances for (essentially) the same constraint? Roman

{-# LANGUAGE UndecidableInstances #-}
class OldConstraint a => NewtypedConstraint a
instance OldConstraint a => NewtypedConstraint a
perhaps?
Nice thing is you don't even need to do wrapping/unwrapping, like you do
with data newtypes.
On Tue, Mar 12, 2013 at 2:18 PM, Roman Cheplyaka
Is there a way to newtype a constraint?
Imagine a type class parameterised over constraints. What do I do if I want multiple instances for (essentially) the same constraint?
Roman
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
-- Your ship was destroyed in a monadic eruption.

Neat, thanks!
Roman
* Gábor Lehel
{-# LANGUAGE UndecidableInstances #-}
class OldConstraint a => NewtypedConstraint a instance OldConstraint a => NewtypedConstraint a
perhaps?
Nice thing is you don't even need to do wrapping/unwrapping, like you do with data newtypes.
On Tue, Mar 12, 2013 at 2:18 PM, Roman Cheplyaka
wrote: Is there a way to newtype a constraint?
Imagine a type class parameterised over constraints. What do I do if I want multiple instances for (essentially) the same constraint?
Roman
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
-- Your ship was destroyed in a monadic eruption.

On 12 March 2013 13:18, Roman Cheplyaka
Is there a way to newtype a constraint?
Imagine a type class parameterised over constraints. What do I do if I want multiple instances for (essentially) the same constraint?
It would make sense to add support for this to newtype directly. I think it would also make sense to allow newtypes over types of kind #. "All" that is required is some implementation effort: I looked into doing this as part of the constraint kinds patches but it is a bit messy. Max
participants (3)
-
Gábor Lehel
-
Max Bolingbroke
-
Roman Cheplyaka