txt: ## wraphandle.md
  class Routine::WrapHandle
  
  Holds all information needed to unwrap a wrapped routine.
  
  class WrapHandle { ... }
  
  `WrapHandle` is a *Rakudo private class* created and returned by [wrap](/type/Routine#method_wrap). Its only use is to unwrap wrapped routines. Either call [unwrap](/type/Routine#method_unwrap) on a routine object or call the method `restore` on a `Routine::WrapHandle` object.
  
  ```raku
  sub f() { say 'f was called' }
  my $wrap-handle = &f.wrap({ say 'before'; callsame; say 'after' });
  f;                    # OUTPUT: «before␤f was called␤after␤»
  $wrap-handle.restore;
  f;                    # OUTPUT: «f was called␤»
  ```
  
  As such private class, it may suffer any kind of changes without prior notice. It is only mentioned here since it is visible by the user who checks the return type of the `Routine.wrap` method.
  
  # [Methods](#class_Routine::WrapHandle "go to top of document")[§](#Methods "direct link")
  
  ## [method restore](#class_Routine::WrapHandle "go to top of document")[§](#method_restore "direct link")
  
  ```raku
  method restore(--> Bool:D)
  ```
  
  Unwraps a wrapped routine and returns `Bool::True` on success.
  