"H      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG Noneforces sequence forces returns forcing invoker NoneIOResult for error handling IInteraction (a function from a intermediating type to another type) type *Datatype for intermediating interaction:  OIM 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. 1 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. J Once expressed, the value never be back to non-expressed nor be changed. Dereference operator Reference operator Assign Operator Decomposer for pair Decomposer for list Decomposer for triple Decomposer for 4-tuple Decomposer for 5-tuple Decomposer for 6-tuple Decomposer for 7-tuple Drive interaction Convert IO to interaction %HI J KLMNOPQRSTUV    HI J KLMNOPQRSTUVNone-Connect two interactions into an interaction  Iteration "Conditional branching % Sequencing  !"#$%& !"#$%& !"#$%& !"#$%&None'()*'()*'()*'()*None +,-./01234 +,-./01234 +,-./01234 +,-./01234NoneW56XYZ[5656W56XYZ[None789:;<=>?@ABC\D]^_789:;<=>?@ABCD789:CD;<=>?@AB789:;<=>?@ABC\D]^_NoneEFGEFGEFGEFG NoneH  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG`     !"#$%&'()*+,-./0123456789:;<=>?@AABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdeVfgoi-0.3.1 Data.OI.ForceData.OI.InternalData.OI.Combinator Data.OI.IFun Data.OI.IO Data.OI.MergeData.OI.ResourceData.OI.SystemData.OIforceSeqforceforce'IOResultFailureerrmsgSuccessresult:->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 $fFunctorOIBuffermergeIOnmergeIO max_buff_sizesuckIO readFileIO writeFileIO$fShowResource