
People, GHC provides some extensions for kinds. Does this make possible different kinds, for example, for `*' ? Prelude.Num has * :: a -> a -> a. And mathematicians also like to denote as `*' (\cdot in TeX) a "multiplication of a vector v by a coefficient r". It is expressed by the declaration class (Num r, ...) => LeftModule r v where * :: r -> v -> v Regards, ------ Sergei mechvel@botik.ru

On Tue, Jan 10, 2012 at 09:41:11PM +0400, Serge D. Mechveliani wrote:
People,
GHC provides some extensions for kinds. Does this make possible different kinds, for example, for `*' ?
Terms have types, and types have kinds. (*) is a term, so it has a type, not a kind.
Prelude.Num has * :: a -> a -> a.
And mathematicians also like to denote as `*' (\cdot in TeX) a "multiplication of a vector v by a coefficient r". It is expressed by the declaration
class (Num r, ...) => LeftModule r v where * :: r -> v -> v
It seems to me this is simply an issue of generalizing the definition of (*). Several attempts have been made in this direction, notably http://hackage.haskell.org/package/algebra and http://hackage.haskell.org/package/numeric%2Dprelude. But I am not sure that the new extensions to the kind system have much to do with this. -Brent
participants (2)
-
Brent Yorgey
-
Serge D. Mechveliani