txt: ## what.md
  what
  
  Combined from primary sources listed below.
  
  # [In X::Undeclared](#___top "go to top of document")[§](#(X::Undeclared)_method_what "direct link")
  
  See primary documentation
  [in context](/type/X/Undeclared#method_what)
  for **method what**.
  
  Returns the kind of symbol that was not declared (for example variable, type, routine).
  
  Since The symbol wasn't declared, the compiler sometimes has to guess (or rather disambiguate) what kind of symbol it encounter that wasn't declared. For example if you write
  
  ```raku
  say a;
  
  ```
  
  Then the disambiguation defaults to reporting a missing subroutine, even though declaring a `constant a = 'a'` would also make the error go away.
  
  # [In X::Cannot::Lazy](#___top "go to top of document")[§](#(X::Cannot::Lazy)_method_what "direct link")
  
  See primary documentation
  [in context](/type/X/Cannot/Lazy#method_what)
  for **method what**.
  
  ```raku
  method what()
  ```
  
  Returns the type that was the target of the action, if it was not the lazy list itself.
  
  # [In X::Syntax::Missing](#___top "go to top of document")[§](#(X::Syntax::Missing)_method_what "direct link")
  
  See primary documentation
  [in context](/type/X/Syntax/Missing#method_what)
  for **method what**.
  
  ```raku
  method what(--> Str:D)
  ```
  
  Returns a string description of the missing syntax element.
  
  # [In IO::Special](#___top "go to top of document")[§](#(IO::Special)_method_what "direct link")
  
  See primary documentation
  [in context](/type/IO/Special#method_what)
  for **method what**.
  
  ```raku
  say $*IN.path.what;  # OUTPUT: «<STDIN>␤»
  say $*OUT.path.what; # OUTPUT: «<STDOUT>␤»
  say $*ERR.path.what; # OUTPUT: «<STDERR>␤»
  ```
  
  Returns one of the strings `'<STDIN>'`, `'<STDOUT>'`, or `'<STDERR>'`, specifying the type of the special IO device.
  
  # [In X::Cannot::Empty](#___top "go to top of document")[§](#(X::Cannot::Empty)_method_what "direct link")
  
  See primary documentation
  [in context](/type/X/Cannot/Empty#method_what)
  for **method what**.
  
  ```raku
  method what()
  ```
  
  Returns the type that was the target of the action.
  
  # [In X::OutOfRange](#___top "go to top of document")[§](#(X::OutOfRange)_method_what "direct link")
  
  See primary documentation
  [in context](/type/X/OutOfRange#method_what)
  for **method what**.
  
  ```raku
  method what(--> Str:D)
  ```
  
  Verbal description of the thing that was out of range (e.g. `"array index"`, `"month"`).
  
  # [In X::Syntax::Malformed](#___top "go to top of document")[§](#(X::Syntax::Malformed)_method_what "direct link")
  
  See primary documentation
  [in context](/type/X/Syntax/Malformed#method_what)
  for **method what**.
  
  ```raku
  method what(X::Syntax::Malformed:D: --> Str)
  ```
  
  Returns a description of the thing that was being parsed.
  
  # [In X::Syntax::Variable::Numeric](#___top "go to top of document")[§](#(X::Syntax::Variable::Numeric)_method_what "direct link")
  
  See primary documentation
  [in context](/type/X/Syntax/Variable/Numeric#method_what)
  for **method what**.
  
  ```raku
  method what returns Str:D
  ```
  
  Returns a verbal description of the kind of symbol that was declared (variable, parameter, attribute).
  
  # [In X::Redeclaration](#___top "go to top of document")[§](#(X::Redeclaration)_method_what "direct link")
  
  See primary documentation
  [in context](/type/X/Redeclaration#method_what)
  for **method what**.
  
  Returns the kind of symbol that was redeclared. Usually `symbol`, but can also be `routine`, `type` etc.
  