流行に乗ってHaskellを勉強しているのですが、バイナリファイルの扱い方に困ってます。

int numFloat;
int numInt;
float floats[numFloat];
int ints[numInt];

C的な擬似コードで書くとこんな感じのバイナリファイルに対して、
floatsとintsのデータを取ってきて文字列でフォーマット化して表示してみよう、と思っています。

hFile <- openFile filepath ReadMode
cs <- hGetContents hFile

ひとまずこれで[Char]を持ってきて、そこからnumFloatとnumIntを切り出せばよいか、
と思ってるのですが、じゃあそれってどうするんだろう、ってところで詰まってます。

(numFloat,numInt,残り) = hogeFunction cs

みたいな感じで切り出すのが関数型的な感じなのかな、と思っているのですが、
そもそもこの辺の考え方からして駄目っぽいですか?