packages feed

oi-0.1.1: sample/catsOI.hs

{-# LANGUAGE TypeOperators #-}
module Main where

import Data.OI

main :: IO ()
main = run pmain

pmain :: (([String], Either (String, [String]) [String]), ()) :-> ()
pmain = args 
    |/| choiceOIOn (const $ lines . readFile' "files" |/| zipWithOI readFile') 
                   (zipWithOI readFile')
                   null
    |/| writeFile' "output.txt" . concatMap textproc

readFile' :: FilePath -> OI String -> String
readFile'  = iooi . readFile

writeFile' :: FilePath -> String -> OI () -> ()
writeFile' = (iooi .) . writeFile

textproc :: String -> String
textproc = id -- unlines . take 1 . lines