concat :produces & :consumes to preserve order