[Haskell-cafe] how do I avoid excessive constructor application?
Keean Schupke
k.schupke at imperial.ac.uk
Wed Mar 2 10:13:24 EST 2005
Something like:
class Coerce a b where
coerce :: a -> b
The class must be in a separate file from the instance so that the compiler
does not determine that a == b for all instances.
instance Coerce a a where
coerce = id
If it turns out the left and right types do not match, you get a
"no instance of coerce for ..." error.
Keean.
S. Alexander Jacobson wrote:
> I'd like to do this sort of thing with types other than Either.
> Is there a generic safe coerce function?
>
> -Alex-
>
>
> On Wed, 2 Mar 2005, Stefan Holdermans wrote:
>
>> Lemmih,
>>
>>> And you can "fix" it with some unsafeCoerce# magic. (:
>>
>>
>> Actually, as I pointed out, the required coercion in perfectly safe,
>> though not implicit:
>>
>> coerceRight :: Either a b -> Either c b
>> coerceRight (Right b) = Right b
>>
>> Regards,
>>
>> Stefan
>>
>
> ______________________________________________________________
> S. Alexander Jacobson tel:917-770-6565 http://alexjacobson.com
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
More information about the Haskell-Cafe
mailing list