
29 Nov
2011
29 Nov
'11
3:55 a.m.
Martin,
(The trick with `flip` is tempting, but again at the cost of having to peer rather too closely at the implementation of processFile when reading the code).
That "trick" is of course completely orthogonal. One could just as well write: processFile :: (String -> [a]) -> (a -> (String, String)) -> Editor -> String -> IO () processFile f g ed path = do s <- readFile path ps -> mapM (makePair . g) (f s) es -> return $ V.fromList ps writeIORef ed es importFile = processFile lines (\x -> (x, "")) loadFile = processFile parseFile id Cheers, Stefan