anchor.diff:  
     num y = (l + 16.0) / 116.0;
     num x = a / 500.0 + y;
  -  var z = y - b / 200.0;
  +  num z = y - b / 200.0;
   
     var y3 = pow(y, 3);
     if (y3 > 0.008856) {
  
positive.code:     return [gray, gray, gray];
    }
  
    var h = (hue - hue.floor()) * 6.0;
    var f = h - h.floor();
    var p = brightness * (1.0 - saturation);
    var q = brightness * (1.0 - saturation * f);
    var t = brightness * (1.0 - (saturation * (1.0 - f)));
  
    switch (h.toInt()) {
      case 0:
  
negative.code:   z /= 100.0;
  
    // xyz to rgb
    num R = x * 3.2406 + y * (-1.5372) + z * (-0.4986);
    num G = x * (-0.9689) + y * 1.8758 + z * 0.0415;
    num B = x * 0.0557 + y * (-0.2040) + z * 1.0570;
  
    if (R > 0.0031308) {
      R = 1.055 * (pow(R, 1.0 / 2.4)) - 0.055;
  