@wryk @Ambraven c.f. la session de démo que j'ai ajouté dans le README.txt en fait.
Et effectivement `putStrLn generate` n'a pas de sens parce que l'expression est mal typée :
putStrLn :: String -> IO ()
attends une chaîne en argument, et fera une opération de type unit, dans la monade IO (provoquant un effet de bord), alors que
generate :: IO String
renvoie une chaîne de caractères, mais «salie» par la monade IO (parce que pour l'obtenir, il a fallu faire un effet de bord : consommer des valeurs du générateur aléatoire, donc modifier son état).