You would need to define a type class
(Binary a) => EncodedPtr a b
where the 'a' is as you have it currently, and the b would be an enumerated type which tracks the memory representation.

I agree they are different concepts - that is why an EncodedPtr would require 2 type parameters. Of course, this class would define encode/decode functions, but without the need for the name encoding (and additional safety).

Jacques

Bulat Ziganshin wrote:
Hello Jacques,

Wednesday, May 31, 2006, 5:33:39 PM, you wrote:

decodePtrBitAlignedLE :: (Binary a, Integral size) =>  Ptr x -> size -> IO a

Am I the only one who finds this encoding-of-types in the _name_ of a function quite distateful? There is no type safety being enforced here,

can you please write code you suggested? i'm not sure that type "a"
should be encoded only to area pointed by "Ptr a" - binary encoding of
value and it's memory representation are different concepts, although
they are similar at the look


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

Reply via email to