failOn10 :: Int -> IO (Int -> ([Int], [Int]))
failOn10 b = do
    let result _ =
            if b > 10
                then error "Bad"
                else ([b], [b + 1])
    return result
failOn10 :: Int -> IO (Int -> ([Int], [Int]))
failOn10 b = do
    let result _ =
            if b > 10
                then error "Bad"
                else ([b], [b + 1])
    return result
failOn10 b = do
    let result _ =
            if b > 10
                then error "Bad"
                else ([b], [b + 1])
    return result