ocure :: [i] -> (i -> s) -> (i -> c -> a) -> InteractT i u c s m [(i, a)]
procure ids sf cf =
  Talk (map (\i -> (i, sf i)) ids)
       (\ics -> Terminal $ map (\(i, c) -> (i, cf i c)) ics)


procure :: [i] -> (i -> s) -> (i -> c -> a) -> InteractT i u c s m [(i, a)]
procure ids sf cf =
  Talk (map (\i -> (i, sf i)) ids)
       (\ics -> Terminal $ map (\(i, c) -> (i, cf i c)) ics)
procure ids sf cf =
  Talk (map (\i -> (i, sf i)) ids)
       (\ics -> Terminal $ map (\(i, c) -> (i, cf i c)) ics)