In order to represent Z/nZ, regular way need to store two integers, and a data constructer. With number parameterized types, newtype+Integer can be used, it's much more efficient.
For this project, montg reduce require to calculate a key for each modulus, but the modulus won't be changed within Num typeclass. It's better to fix it in type system.

On Nov 7, 2011 1:38 AM, "DavidA" <polyomino@f2s.com> wrote:
What's the purpose of all the type trickery?
Why not just implement the algorithm using Integer?



_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe