txt: ## which.md
  WHICH
  
  Combined from primary sources listed below.
  
  # [In IO::Special](#___top "go to top of document")[§](#(IO::Special)_method_WHICH "direct link")
  
  See primary documentation
  [in context](/type/IO/Special#method_WHICH)
  for **method WHICH**.
  
  ```raku
  method WHICH(IO::Special:D: --> Str)
  ```
  
  This returns a string that identifies the object. The string is composed by the type of the instance (`IO::Special`) and the `what` attribute:
  
  ```raku
  $*IN.path.what;  # OUTPUT: «<STDIN>␤»
  $*IN.path.WHICH; # OUTPUT: «IO::Special<STDIN>␤»
  ```
  
  # [In Range](#___top "go to top of document")[§](#(Range)_method_WHICH "direct link")
  
  See primary documentation
  [in context](/type/Range#method_WHICH)
  for **method WHICH**.
  
  ```raku
  multi method WHICH (Range:D:)
  ```
  
  This returns a string that identifies the object. The string is composed by the type of the instance (`Range`) and the `min` and `max` attributes:
  
  ```raku
  say (1..2).WHICH # OUTPUT: «Range|1..2␤»
  ```
  
  # [In Mu](#___top "go to top of document")[§](#(Mu)_method_WHICH "direct link")
  
  See primary documentation
  [in context](/type/Mu#method_WHICH)
  for **method WHICH**.
  
  ```raku
  multi method WHICH(--> ObjAt:D)
  ```
  
  Returns an object of type [`ObjAt`](/type/ObjAt) which uniquely identifies the object. Value types override this method which makes sure that two equivalent objects return the same return value from `WHICH`.
  
  ```raku
  say 42.WHICH eq 42.WHICH;       # OUTPUT: «True␤»
  ```
  
  # [In Allomorph](#___top "go to top of document")[§](#(Allomorph)_method_WHICH "direct link")
  
  See primary documentation
  [in context](/type/Allomorph#method_WHICH)
  for **method WHICH**.
  
  ```raku
  multi method WHICH(Allomorph:D:)
  ```
  
  Returns an object of type [`ValueObjAt`](/type/ValueObjAt) which uniquely identifies the object.
  
  ```raku
  my $f = <42.1e0>;
  say $f.WHICH;     # OUTPUT: «NumStr|Num|42.1|Str|42.1e0␤»
  ```
  