Expecting fd :: (a, Int) -> (Int, t) -> (t, [a]) or equivalent OK