-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Essential features
--
-- Essential features
@package ACME
@version 0.0.0.1
module Acme.Unit
-- | Generalized unit types
class Unit t
unit :: Unit t => t
instance Unit u => Unit (t -> u)
instance Unit t => Unit (Identity t)
instance (Unit t, Unit u, Unit v, Unit w, Unit x) => Unit (t, u, v, w, x)
instance (Unit t, Unit u, Unit v, Unit w) => Unit (t, u, v, w)
instance (Unit t, Unit u, Unit v) => Unit (t, u, v)
instance (Unit t, Unit u) => Unit (t, u)
instance Unit ()
-- | The Trivial monad.
module Acme.Trivial
data Trivial t
Trivial :: Trivial t
instance Eq (Trivial t)
instance Ord (Trivial t)
instance Show (Trivial t)
instance Read (Trivial t)
instance Monad Trivial
instance Functor Trivial
module Acme.Smash
-- | smash "THE ONE" NEO == "THE ONEO"
smash :: Eq a => [a] -> [a] -> [a]
module Acme.Pirates
forPlunder :: IOMode
forSafeKeeping :: IOMode
digUpChest :: FilePath -> IOMode -> IO Handle
buryChest :: Handle -> IO ()
loadDoubloon :: Handle -> IO Char
loadCashBox :: Handle -> IO String
stowDoubloon :: Handle -> Char -> IO ()
stowCashBox :: Handle -> String -> IO ()
readTreasureMap :: Handle -> IO Integer
xMarksTheSpot :: Handle -> SeekMode -> Integer -> IO ()
loadTheTreasure :: Handle -> IO String
abandonShip :: ExitCode -> IO a
whatSayYe :: IO String
collectDoubloon :: IO Char
pollySquawks :: Char -> IO ()
pollySays :: [Char] -> IO ()
captainsLog :: String -> IO ()
-- | The crew gives the captain the black spot to inform him of a mutiny.
theBlackSpot :: Exception e => e -> IO a
-- | The captain tries to give orders in the first parameter. This may
-- result in a mutiny, which is handled in the second parameter.
mutiny :: Exception e => IO a -> (e -> IO a) -> IO a
-- | Miscellaneous interjections
shiverMeTimbers :: a -> a
yar :: a -> a
meMateys :: a -> a
-- | The Perhaps monad
module Acme.Perhaps
data Perhaps t
Definitely :: t -> Perhaps t
Probably :: t -> Perhaps t
ProbablyNot :: Perhaps t
Nope :: Perhaps t
instance Eq t => Eq (Perhaps t)
instance Ord t => Ord (Perhaps t)
instance Show t => Show (Perhaps t)
instance Read t => Read (Perhaps t)
instance Monad Perhaps
-- | An interface to continuations using Peirce's law
--
-- This module is bogus, as the following proof demonstrates:
--
-- peirce (f -> f 1 == f 2) == 1
--
-- peirce (f -> f 2 == f 1) == 2
--
-- f 1 == f 2
--
-- Therefore, 1 == 2.
module Acme.Peirce
-- | Ex falso
falseVoid :: Void -> a
-- | Peirce's law
peirce :: ((a -> a1) -> a) -> a
-- | Law of excluded middle
lem :: (a -> b) -> ((a -> Void) -> b) -> b
-- | Double negation law
doubleNeg :: ((b -> Void) -> Void) -> b
instance Typeable ContinueException
instance Show ContinueException
instance Exception ContinueException
-- | A monad to handle economic transactions between computations
module Acme.Money
data Money u t
-- | Lift an IO computation into the Money monad
lift' :: IO t -> Money u t
-- | Charge n simoleons from the purchasing computation
charge :: Float -> Money u ()
-- | Purchase the ith computation from the list
purchase :: Int -> Money u u
-- | Run several computations, where the computations may purchase the use
-- of one another
runMoneys :: [(IORef Float, Money a a)] -> [IO a]
instance Monad (Money u)
-- | Various ciphers.
module Acme.Cipher
data Cipher key
encode :: Cipher t -> t -> String -> String
decode :: Cipher t -> t -> String -> String
-- | The Playfair cipher
playfair :: Cipher [Char]
-- | The letter substitution cipher
substitution :: Cipher [(Char, Char)]
addLetters :: Char -> Char -> Char
subtractLetters :: Char -> Char -> Char
-- | The Viginere cipher (acts like one-time pad if the key is as long as
-- the plaintext)
viginere :: Cipher [Char]
-- | The Caesar cipher
caesar :: Cipher Char
newtype Plugboard
Plugboard :: [(Char, Char)] -> Plugboard
newtype Reflector
Reflector :: [(Char, Char)] -> Reflector
newtype RotorMapping
RotorMapping :: [(Char, Char)] -> RotorMapping
enigma :: RandomGen g => g -> Cipher (Plugboard, Reflector, (RotorMapping, RotorMapping, RotorMapping))