public function map(callable $function)
    {
        $output = new Dict();

        foreach ($this->data as $key => $value) {
            $output->offsetSet($key, $function($key, $value));
        }

        return $output;
    }