txt: ## pipe.md
  class IO::Pipe
  
  Buffered inter-process string or binary stream
  
  ```raku
  class IO::Pipe is IO::Handle {}
  ```
  
  An `IO::Pipe` object closely corresponds to a UNIX pipe. It has one end where it consumes string or binary data, and another where it reproduces the same data. It is buffered, so that a write without a read doesn't immediately block.
  
  Pipes can be easily constructed with [sub run and Proc::Async.new](/type/Proc/Async).
  
  # [Methods](#class_IO::Pipe "go to top of document")[§](#Methods "direct link")
  
  ## [method close](#class_IO::Pipe "go to top of document")[§](#method_close "direct link")
  
  ```raku
  method close(IO::Pipe: --> Proc:D)
  ```
  
  Closes the pipe and returns [`Proc`](/type/Proc) object from which the pipe originates.
  
  ## [method IO](#class_IO::Pipe "go to top of document")[§](#method_IO "direct link")
  
  ```raku
  method IO(IO::Pipe: --> IO::Path:U)
  ```
  
  Returns an [`IO::Path`](/type/IO/Path) type object.
  
  ## [method path](#class_IO::Pipe "go to top of document")[§](#method_path "direct link")
  
  ```raku
  method path(IO::Pipe: --> IO::Path:U)
  ```
  
  Returns an [`IO::Path`](/type/IO/Path) type object.
  
  ## [method proc](#class_IO::Pipe "go to top of document")[§](#method_proc "direct link")
  
  ```raku
  method proc(IO::Pipe: --> Proc:D)
  ```
  
  Returns the [`Proc`](/type/Proc) object from which the pipe originates.
  