public function changeHSL($dh=0, $ds=0, $dl=0)
    {
        list($h, $s, $l) = $this->toHSL();

        $h += $dh;
        $s += $ds;
        $l += $dl;

        $c = self::fromHSL($h, $s, $l);

        $this->r = $c->r;
        $this->g = $c->g;
        $this->b = $c->b;

        return $this;
    }