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 _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe