Malcolm, Thanks for this. I'm restructuring the Crypto libraries so that it will contain Crypto.Modes, Crypto.DES, Crypto.Blowfish etc. The current Blowfish should work with nhc. When I get the chance, I'll see if I can restructure DES but it's not top of my priorities at the moment. [Dominic Steinitz ----- Original Message ----- From: "Malcolm Wallace" <Malcolm.Wallace@cs.york.ac.uk> To: "Dominic Steinitz" <dominic.steinitz@blueyonder.co.uk> Cc: <nhc-users@haskell.org>; <libraries@haskell.org> Sent: Tuesday, April 29, 2003 2:33 PM Subject: Re: Crytpo for nhc
"Dominic Steinitz" <dominic.steinitz@blueyonder.co.uk> writes:
I have been trying to write a Crypto library and so far it works with ghc and hugs.
Am I right in thinking I am going to struggle with nhc? It uses Word8 and Word64 heavily. For example, cipher block chaining relies on xoring Word64.
The things you mention are not a particular problem for nhc98. The only problem I encountered in the Crypto.hs code is that its use of the type class machinery is not Haskell'98 compliant.
instance Bits [Bool] where ...
is illegal in Haskell'98, because an instance head must be either a simple type name, or a type constructor applied to only type variables. (See the Report section 4.3.2) If ghc and Hugs permit this, then it is a non-standard extension to the language.
Unfortunately, I don't immediately see an easy way to convert this construction into something more amenable.
Regards, Malcolm