-- | Given a handle, ignore all other inputs and just stream input from that handle.
--
-- @
-- 'pass' 'id' :: 'Data.Machine.Process.Process' a a
-- 'pass' 'Data.Machine.Tee.L'  :: 'Data.Machine.Tee.Tee' a b a
-- 'pass' 'Data.Machine.Tee.R'  :: 'Data.Machine.Tee.Tee' a b b
-- 'pass' 'Data.Machine.Wye.X'  :: 'Data.Machine.Wye.Wye' a b a
-- 'pass' 'Data.Machine.Wye.Y'  :: 'Data.Machine.Wye.Wye' a b b
-- 'pass' 'Data.Machine.Wye.Z'  :: 'Data.Machine.Wye.Wye' a b (Either a b)
-- @
pass :: k o -> Machine k o
pass k = repeatedly $ do
  a <- awaits k
  yield a


-- | Run a machine with no input until it stops, then behave as another machine.
pass :: k o -> Machine k o
pass k = repeatedly $ do
  a <- awaits k
  yield a


-- | Run a machine with no input until it stops, then behave as another machine.
pass k = repeatedly $ do
  a <- awaits k
  yield a


-- | Run a machine with no input until it stops, then behave as another machine.