[Haskell-beginners] Type polymorphism with size

David Frey dpfrey at shaw.ca
Tue Nov 18 22:58:24 EST 2008

On 11/18/2008, "Michael Snoyman" <michael at snoyman.com> wrote:

>I am trying to write some code to read flat files from a mainframe system.
>This includes some character fields. This is a fixed width file, so each
>field will have a consistent length between records, but there are fields of
>different length within a record. For example, I might have a "name" field
>length 20 and an eye color field length 5.
>I am trying to use the binary library to read in this file. I've written a
>binary type, MFChar2, for reading in a 2-length character field. It is
>defined as such (you can safely ignore the ebcdicToAscii piece, it is just
>doing character conversion):
>data MFChar2 = MFChar2 [Word8]
>instance Binary MFChar2 where
>    put = undefined
>    get = do ebcdic <- replicateM 2 getWord8
>             return $ MFChar2 $ map ebcdicToAscii ebcdic
>What I would like to do is have some kind of generic "MFChar" data type
>which could take any character length, but I can't figure out how to do it.
>Any help would be appreciated.

Is this something that could be accomplished using template Haskell? I
don't know anything about template Haskell, but maybe someone else on
the list can comment on this suggestion.

More information about the Beginners mailing list