úÎ+wC      !"#$%&'()*+,-./0123456789:;<=>?@AB Safe-Inferred   Safe-Inferred      Safe-Inferred smash "THE ONE" NEO == "THE ONEO"      Safe-Inferred !"# !"# !"# !"# Safe-Inferred$%&'()$%&'($('&%)$('&%)None+* Ex falso + Peirce's law ,Law of excluded middle -Double negation law CD*+,-E*+,-*+,-CD*+,-E Safe-Inferred/,Lift an IO computation into the Money monad 03Charge n simoleons from the purchasing computation 1+Purchase the ith computation from the list 2URun several computations, where the computations may purchase the use of one another .FG/012H./012./012.FG/012HNoneI$For good measure, the German Enigma <The Playfair cipher =The letter substitution cipher @TThe Viginere cipher (acts like one-time pad if the key is as long as the plaintext) AThe Caesar cipher #345678IJKLM9N:;<O=PQ>?@ARSTUVWXYBZ[3456789:;<=>?@AB9:;<=>?@A785634B345678IJKLM9N:;<O=PQ>?@ARSTUVWXYBZ[\      !"#$%&'()*+,-./0123456789:;;<<==>?@ABCDEFGHHI6JKLLMNO>PQRSTUVWXYZ[\] ACME-0.0.0.0 Acme.Unit Acme.Trivial Acme.Smash Acme.Pirates Acme.Perhaps Acme.Peirce Acme.Money Acme.CipherUnitunit $fUnit(->)$fUnitIdentity $fUnit(,,,,) $fUnit(,,,) $fUnit(,,) $fUnit(,)$fUnit()Trivial$fMonadTrivial$fFunctorTrivialsmash forPlunderforSafeKeeping digUpChest buryChest loadDoubloon loadCashBox stowDoubloon stowCashBoxreadTreasureMap xMarksTheSpotloadTheTreasure abandonShip whatSayYecollectDoubloon pollySquawks pollySays captainsLog theBlackSpotmutinyshiverMeTimbersyarmeMateysPerhapsNope ProbablyNotProbably Definitely$fMonadPerhaps falseVoidpeircelem doubleNegMoneylift'chargepurchase runMoneys RotorMapping Reflector PlugboardCipherencodedecodeplayfair substitution addLetterssubtractLettersviginerecaesarenigmaContinueException$fExceptionContinueExceptionunMoney $fMonadMoneyRotormappingposition nextRotorswapletterletter2advancenewRotor newRotorslook rotorFunctionreverseRotorFunction randomLetter encodeEnigmarot13test