Turn IOException into a record to avoid the let-binding patmatch.
Turn IOException into a record to avoid the let-binding patmatch.

Write the monad instance in terms of that projection + either instead
of casing on the Either.

Using ! instead of >>= (which I thought should be equivalent)
results in a funky internal error.

ben-schulz/Idris-dev,ozgurakgun/Idris-dev,tpsinnem/Idris-dev,Heather/Idris-dev,enolan/Idris-dev,ozgurakgun/Idris-dev,uuhan/Idris-dev,mrmonday/Idris-dev,FranklinChen/Idris-dev,kojiromike/Idris-dev,ben-schulz/Idris-dev,markuspf/Idris-dev,ben-schulz/Idris-dev,KaneTW/Idris-dev,markuspf/Idris-dev,ben-schulz/Idris-dev,adnelson/Idris-dev,markuspf/Idris-dev,markuspf/Idris-dev,kojiromike/Idris-dev,aaronc/Idris-dev,ben-schulz/Idris-dev,Heather/Idris-dev,mpkh/Idris-dev,FranklinChen/Idris-dev,KaneTW/Idris-dev,TimRichter/Idris-dev,eklavya/Idris-dev,bravit/Idris-dev,jmitchell/Idris-dev,bravit/Idris-dev,aaronc/Idris-dev,jmitchell/Idris-dev,KaneTW/Idris-dev,uuhan/Idris-dev,ozgurakgun/Idris-dev,FranklinChen/Idris-dev,mpkh/Idris-dev,kojiromike/Idris-dev,markuspf/Idris-dev,markuspf/Idris-dev,enolan/Idris-dev,uuhan/Idris-dev,tpsinnem/Idris-dev,markuspf/Idris-dev,jmitchell/Idris-dev,eklavya/Idris-dev,adnelson/Idris-dev,aaronc/Idris-dev,kojiromike/Idris-dev,adnelson/Idris-dev,uuhan/Idris-dev,eklavya/Idris-dev,tpsinnem/Idris-dev,ozgurakgun/Idris-dev,mrmonday/Idris-dev,FranklinChen/Idris-dev,aaronc/Idris-dev,tpsinnem/Idris-dev,mrmonday/Idris-dev,mpkh/Idris-dev,Heather/Idris-dev,aaronc/Idris-dev,FranklinChen/Idris-dev,tpsinnem/Idris-dev,mpkh/Idris-dev,TimRichter/Idris-dev,bravit/Idris-dev,mrmonday/Idris-dev,TimRichter/Idris-dev,Heather/Idris-dev,KaneTW/Idris-dev,tpsinnem/Idris-dev,ozgurakgun/Idris-dev,adnelson/Idris-dev,TimRichter/Idris-dev,enolan/Idris-dev,FranklinChen/Idris-dev,mrmonday/Idris-dev,uuhan/Idris-dev,Heather/Idris-dev,mpkh/Idris-dev,eklavya/Idris-dev,mpkh/Idris-dev,enolan/Idris-dev,eklavya/Idris-dev,enolan/Idris-dev,KaneTW/Idris-dev,ozgurakgun/Idris-dev,enolan/Idris-dev,jmitchell/Idris-dev,Heather/Idris-dev,jmitchell/Idris-dev,bravit/Idris-dev,bravit/Idris-dev,TimRichter/Idris-dev,ben-schulz/Idris-dev,uuhan/Idris-dev,eklavya/Idris-dev,mrmonday/Idris-dev,bravit/Idris-dev,KaneTW/Idris-dev,kojiromike/Idris-dev,jmitchell/Idris-dev,kojiromike/Idris-dev,TimRichter/Idris-dev,adnelson/Idris-dev,aaronc/Idris-dev,adnelson/Idris-dev,uuhan/Idris-dev