Reading a data file for performing a FFT
You can use HLint tool to get rid of few extra parentheses, and use &lt;$&gt; instead of liftM:

contents &lt;- B.lines &lt;$&gt; B.readFile filename


Other than that I don't see anything to be improved in your code at low level. To help with high level design there's not enough info in your question. Can you explain what do you want to achieve with your code?