touch inFile1 touch inFile2 touch inFile3 touch inFile4 runhaskell demo.hs; sleep 1 stat(inFile1) stat(inFile2) stat(inFile3) Some output stat(outFile1) write(outFile1) read(inFile1) read(inFile2) stat(inFile4) stat(outFile2) write(outFile2) read(inFile3) read(inFile4) stat(outFile3) write(outFile3) runhaskell demo.hs; sleep 1 stat(inFile1) stat(inFile2) stat(inFile3) Some output stat(outFile1) stat(inFile4) stat(outFile2) stat(outFile3) write(outFile3) read(inFile1) echo "2" > inFile2 runhaskell demo.hs; sleep 1 stat(inFile1) stat(inFile2) stat(inFile3) Some output stat(outFile1) write(outFile1) read(inFile1) read(inFile2) stat(inFile4) stat(outFile2) write(outFile2) read(inFile3) read(inFile4) stat(outFile3) write(outFile3) rm outFile1 runhaskell demo.hs; sleep 1 stat(inFile1) stat(inFile2) stat(inFile3) Some output stat(outFile1) write(outFile1) read(inFile1) read(inFile2) stat(inFile4) stat(outFile2) stat(outFile3) write(outFile3) echo "3" > inFile3 runhaskell demo.hs; sleep 1 stat(inFile1) stat(inFile2) stat(inFile3) Some output stat(outFile1) write(outFile1) read(inFile1) read(inFile2) stat(inFile4) stat(outFile2) write(outFile2) read(inFile3) read(inFile4) stat(outFile3) write(outFile3) echo "4" > inFile4 touch inFile4 runhaskell demo.hs; sleep 1 stat(inFile1) stat(inFile2) stat(inFile3) Some output stat(outFile1) stat(inFile4) stat(outFile2) write(outFile2) read(inFile1) read(inFile3) read(inFile4) stat(outFile3) write(outFile3)