util: Add first and second, based on arrows in haskell