
5 Aug
2003
5 Aug
'03
9:01 p.m.
In article <200308050848.BAA15295@mail4.halcyon.com>, I wrote:
Actually, if one makes certain assumptions about encodings, you could get away with something like this:
type Encoder base t = t -> [base] type Decoder base t = forall m. (Monad m) => m base -> m t
Is this any less efficient? Probably not if you're writing your BlockRecoders in Haskell.
OK, for something a bit faster for coders written in C, how about: type Encoder base t = UArray Int t -> UArray Int base; data Decoder base t = forall s. MkDecoder (UArray Int base -> Maybe s -> (s,UArray Int t)); -- Ashley Yakeley, Seattle WA