code: def property_(getter: Map[Domain, Range]) -> property:
      
      return property(map_(WeakKeyDictionary())(getter))
docs: Returns property that calls given getter on the first access
      and reuses result afterwards.
  
      Class instances should be hashable and weak referenceable.