Bool IO Bool (Char,Bool) Monad T P (P T) [Int] Int -> Int -> Int