When using Hashable object as $key, Map::put() will not call the Hashable::hash() on the key until later. For example<?class Key implements \Ds\Hashable{ protected $id; public function __construct($id) { $this->id = $id; } public function equals($obj) : bool { return $this->id == $obj->id; } public function hash() { return $this->id; }}$map = new \Ds\Map();$myki = new Key('myki');$map->put($myki, "Value String");var_dump($map->get($myki));echo 'Map::put() store the Hashable object and it cause error in toArray()'. PHP_EOL;var_dump($map->toArray());?>