Marc Van Dongen writes about the need of constant :: a -> b -> and explains that it is needed, for example, to convert constant to polynomial. I consider this as kind of support for the Domain conversion proposal in basAlgPropos, section 'dcon'. It suggests class Convertible which I would like to reformulate now as class Cast a b where cast :: CastMode -> a -> b -> a Example: cast _ f 2 makes a polynomial from 2 :: Integer, if instance (Pol ..) Integer is defined. f serves as the sample that denotes the particular domain of polynomials. This may be, for example - in [x] or in [x,y] - different domains. Of course, the eager usage of Cast would often cause the ambiguity - compile-time report. Still the thing is useful in practice. And mathematically, it is a highly cultural approach - to cast between the domains. It is on the user how wide and how wise to set the Cast instances - the user knows that it is often hard for Haskell to solve such instances. I tried this in practice with GHC, Hugs - a very useful thing. ------------------ Sergey Mechveliani [EMAIL PROTECTED]