import System.Random (randomRIO)
bullshit = [ "A " ++ a ++ " is just a " ++ b ++ " in the " ++ c ++ " of " ++ d ++ "s, what's the problem?"
| a <- nonsense
, b <- nonsense
, c <- nonsense
, d <- map fixY nonsense
]
where fixY ('y' : "") = "ie"
fixY (c : cs) = c : fixY cs
fixY "" = ""
nonsense = [ "category"
, "functor"
, "monad"
, "monoid"
, "manifold"
, "group"
, "magma"
, "morphism"
, "natural transformation"
, "endofunctor"
, "zygohistomorphic prepromorphism"
]
main = randomRIO (0, length bullshit - 1) >>= \n -> putStrLn (bullshit !! n)