On 9 Apr 2008, at 16:26, Henning Thielemann wrote:
1. elementwise multiplication
2. convolution
and you have some function which invokes the ring multiplication
f :: Ring a => a -> a
and a concrete sequence
x :: Sequence Integer
what multiplication (elementwise or convolution) shall be used for
computing (f x) ?
In math, if there is a theorem about a ring, and one wants to apply
it to an object which more than one ring structure, one needs to
indicate which ring to use. So if I translate, then one might get
something like
class Ring (a; o, e, add, mult) ...
...
class Ring(a; o, e, add, (*)) => Sequence.mult a
Ring(a; o, e, add, (**) => Sequence.conv a
where ...
Then Sequence.mult and Sequence.conv will be treated as different
types whenever there is a clash using Sequence only. - I am not sure
how this fits into Haskell syntax though.
This might be useful, if it can be worked out.
Hans
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe