úÎ(D#\H      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG (c) Nobuo Yamashita 2012-2016BSD3Noneforces sequenceforcesreturns forcing invoker(c) Nobuo Yamashita 2011-2016BSD3NoneEKLNIOResult for error handlingHInteraction (a function from a intermediating type to another type) type +Datatype for intermediating interaction: OIN has two states (programmer cannot distinguish), non-expressed and exressed. `Non-expressed'ÿ indicates that no computation is assigned. In other words, it's value is never denotated by any expression. So, if you refer the value then the process will be suspended until other process determins the value. Non-expressed value can be determined to become  expressed, for a value by a expression at most once.  Expressed… indicates that some computation is assigned for the value. Once expressed, the value never be back to non-expressed nor be changed. Dereference operator Reference operator Assign Operator Decomposer for pairDecomposer for listDecomposer for tripleDecomposer for 4-tupleDecomposer for 5-tupleDecomposer for 6-tupleDecomposer for 7-tupleDrive interactionConvert IO to interaction&HI J KLMNOPQRSTUVW   !HI J KLMNOPQRSTUVW(c) Nobuo Yamashita 2011-2016BSD3NoneKL,Connect two interactions into an interaction Iteration"Conditional branching% Sequencing !"#$%& !"#$%& !"#$%& !"#$%&(c) Nobuo Yamashita 2012-2016BSD3NoneKL'()*'()*'()*'()*(c) Nobuo Yamashita 2011-2016BSD3NoneKL +,-./01234 +,-./01234 +,-./01234 +,-./01234+(c) Nobuo Yamashita 2011-2016BSD3NoneKLX56YZ[5656X56YZ[(c) Nobuo Yamashita 2011-2016BSD3NoneKL789:;<=>?@ABC\D]^_789:;<=>?@ABCD789:CD;<=>?@AB789:;<=>?@ABC\D]^_(c) Nobuo Yamashita 2011-2016BSD3NoneKLEFGEFGEFGEFG (c) Nobuo Yamashita 2011-2016BSD3NoneH  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG`     !"#$%&'()*+,-./0123456789:;<=>?@AABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdeVfgoi_BS1lPBt04xc36HIK9eZOd9 Data.OI.ForceData.OI.InternalData.OI.Combinator Data.OI.IFun Data.OI.IO Data.OI.MergeData.OI.ResourceData.OI.SystemData.OIforceSeqforceforce'IOResultSuccessresultFailureerrmsg:->OI??##=:dePairdeListdeTripledeTuple4deTuple5deTuple6deTuple7deLeftdeRightrunInteractioniooiiooi'|:||/||>||><|foldOI sequenceOImapOI zipWithOI zipWithOI'ifOIchoiceOI choiceOIOnseqsOIseqsOI'IFun|::||->||<>|:~>openFile hIsClosedhIsEOFhGetLinehClose hPutStrLnisEOFgetLineputStrLnmergeOInmergeOIResourcereleasestreammapRmapR'filterRfilterR'takeRtakeR' takeWhileR takeWhileR'inFileResourceoutFileResourceargsprogName environment RightValueOf LeftValueOfnewderefputlazy unsafeNew unsafeDeref unsafePut$fFunctorIOResult$fShowIOResult $fComonadOI $fMonadOI$fApplicativeOI $fFunctorOIBuffermergeIOnmergeIOsuckIO readFileIO writeFileIO$fShowResource