`Covertible' class. Reply.
Thu, 08 Feb 2001 09:41:55 +0300
Dylan Thurston <[email protected]> writes
> In thinking about various issues with the numeric classes, I came up
> with the following question: Is there a problem with having a class
> 'Convertible' as follows?
> class Convertible a b where
> convert :: a -> b
The basic algebra library BAL
suggests class Cast a b where cast :: a -> b -> a
If s is an element of a certain domain, then one can use the
cast s x
to convert various data x to corresponding canonical values in the
domain defined by s. For example, if s <- Z[x]
is a polynomial over Integer, then the expressions
cast s 2, cast s (2,3)
give the constant 2, considered as a polynomial, and a one-term
polynomial equal to 2*x^3.
Also BAL overloades +, * ... by hiding-reexporting the standard
Prelude and implements the algebraic categories Group, Ring ...