txt: ## redeclaration.md
  class X::Redeclaration
  
  Compilation error due to declaring an already declared symbol
  
  ```raku
  class X::Redeclaration does X::Comp { }
  ```
  
  Thrown when a symbol (variable, routine, type, parameter, ...) is redeclared. Note that redeclarations are generally fine in an inner scope, but if the redeclaration appears in the same scope as the original declaration, it usually indicates an error and is treated as one.
  
  Examples
  
  ```raku
  my $x; my $x;
  
  ```
  
  dies with
  
  ｢text｣ without highlighting
  
  ```
  
  
  ```
  
  ===SORRY!===
  Redeclaration of symbol $x
  
  
  ```
  
  
  ```
  
  It works with routines too:
  
  ```raku
  sub f() { }
  sub f() { }
  
  ```
  
  dies with
  
  ｢text｣ without highlighting
  
  ```
  
  
  ```
  
  ===SORRY!===
  Redeclaration of routine f
  
  
  ```
  
  
  ```
  
  But those are fine
  
  ```raku
  my $x;
  sub f() {
      my $x;          # not a redeclaration,
                      # because it's in an inner scope
      sub f() { };    # same
  }
  
  ```
  
  # [Methods](#class_X::Redeclaration "go to top of document")[§](#Methods "direct link")
  
  ## [method symbol](#class_X::Redeclaration "go to top of document")[§](#method_symbol "direct link")
  
  Returns the name of the symbol that was redeclared.
  
  ## [method what](#class_X::Redeclaration "go to top of document")[§](#method_what "direct link")
  
  Returns the kind of symbol that was redeclared. Usually `symbol`, but can also be `routine`, `type` etc.
  
  ## [method postfix](#class_X::Redeclaration "go to top of document")[§](#method_postfix "direct link")
  
  Returns a string that is attached to the end of the error message. It usually explains the particular problem in more detail, or suggests way to fix the problem.
  