txt: ## stash.md
  class Stash
  
  Table for "our"-scoped symbols
  
  ```raku
  class Stash is Hash { }
  ```
  
  A `Stash` is a hash that is used for symbol tables at the package scoping level in Raku.
  
  To get a Stash, you can call the `.WHO` pseudo-method on a package (because it answers the question *who lives here?*), or if you write the package name as a literal, append two colons:
  
  ```raku
  class Boring {
      class Nested { };
      our sub package_sub { }
      my sub lexical { };
      method a_method() { }
  }
  say Boring::.^name;             # OUTPUT: «Stash␤»
  say Boring.WHO === Boring::;    # OUTPUT: «True␤»
  ```
  
  Since it inherits from [`Hash`](/type/Hash), you can use all the usual hash functionality:
  
  ```raku
  say Boring::.keys.sort;         # OUTPUT: «(&package_sub Nested)␤»
  say Boring::<Nested>;           # OUTPUT: «(Nested)␤»
  
  ```
  
  As the example above shows only "our"-scoped things appear in the `Stash` (nested classes are "our" by default, but can be excluded with "my".) Lexicals and methods are not included in a Stash, since they do not live in the package table. Lexicals live in a separate lexical pad, which is only visible from inside the scope. Methods (in the case that the package is also a class) have a separate method table, and are accessible through introspection on the class itself, via `.can` and `.^methods`.
  
  # [Typegraph](# "go to top of document")[§](#typegraphrelations "direct link")
  
  Type relations for `Stash`
  
  
  
  raku-type-graph
  
  
  
  Stash
  Stash
  
  
  Hash
  Hash
  
  
  Stash->Hash
  
  
  
  Mu
  Mu
  
  
  Any
  Any
  
  
  Any->Mu
  
  
  
  Cool
  Cool
  
  
  Cool->Any
  
  
  
  Iterable
  Iterable
  
  
  Associative
  Associative
  
  
  Map
  Map
  
  
  Map->Cool
  
  
  
  Map->Iterable
  
  
  
  Map->Associative
  
  
  
  Hash->Map
  
  [Expand chart above](/assets/typegraphs/Stash.svg)
  