txt: ## nyi.md
  class X::NYI
  
  Error due to use of an unimplemented feature
  
  ```raku
  class X::NYI is Exception { }
  ```
  
  Error class for unimplemented features. *NYI* stands for *Not Yet Implemented*.
  
  If a Raku compiler is not yet feature complete, it may throw an `X::NYI` exception when a program uses a feature that it can detect and is somehow specified is not yet implemented.
  
  A full-featured Raku compiler must not throw such exceptions, but still provide the `X::NYI` class for compatibility reasons.
  
  A typical error message is
  
  ｢text｣ without highlighting
  
  ```
  
  
  ```
  
  HyperWhatever is not yet implemented. Sorry.
  
  
  ```
  
  
  ```
  
  # [Methods](#class_X::NYI "go to top of document")[§](#Methods "direct link")
  
  ## [method new](#class_X::NYI "go to top of document")[§](#method_new "direct link")
  
  ```raku
  method new( :$feature, :$did-you-mean, :$workaround)
  ```
  
  This is the default constructor for `X:NYI` which can take three parameters with obvious meanings.
  
  ```raku
  class Nothing {
      method ventured( $sub, **@args) {
          X::NYI.new( feature => &?ROUTINE.name,
                      did-you-mean => "gained",
                      workaround => "Implement it yourself" ).throw;
      }
  }
  
  my $nothing = Nothing.new;
  $nothing.ventured("Nothing", "Gained");
  
  ```
  
  In this case, we are throwing an exception that indicates that the `ventured` routine has not been implemented; we use the generic `&?ROUTINE.name` to not tie the exception to the method name in case it is changed later on. This code effectively throws this exception
  
  ```raku
  # OUTPUT:
  # ventured not yet implemented. Sorry.
  # Did you mean: gained?
  # Workaround: Implement it yourself
  #   in method ventured at NYI.raku line 6
  #   in block <unit> at NYI.raku line 14
  
  ```
  
  Using the exception properties, it composes the message that we see there.
  
  ## [method feature](#class_X::NYI "go to top of document")[§](#method_feature "direct link")
  
  Returns a [`Str`](/type/Str) describing the missing feature.
  
  ## [method did-you-mean](#class_X::NYI "go to top of document")[§](#method_did-you-mean "direct link")
  
  Returns a [`Str`](/type/Str) indicating the optional feature that is already implemented.
  
  ## [method workaround](#class_X::NYI "go to top of document")[§](#method_workaround "direct link")
  
  It helpfully shows a possible workaround for the missing feature, if it's been declared.
  
  ## [method message](#class_X::NYI "go to top of document")[§](#method_message "direct link")
  
  Returns the message including the above properties.
  