static function rotate($a, $cmp, $from, $mid, $to)
 {
     $n = null;
     if ($from === $mid || $mid === $to) {
         return;
     }
     $n = haxe_ds_ArraySort::gcd($to - $from, $mid - $from);
     while ($n-- !== 0) {
         $val = $a[$from + $n];
         $shift = $mid - $from;
         $p1 = $from + $n;
         $p2 = $from + $n + $shift;
         while ($p2 !== $from + $n) {
             $a[$p1] = $a[$p2];
             $p1 = $p2;
             if ($to - $p2 > $shift) {
                 $p2 += $shift;
             } else {
                 $p2 = $from + ($shift - ($to - $p2));
             }
         }
         $a[$p1] = $val;
         unset($val, $shift, $p2, $p1);
     }
 }
 public function createInfo($forClass)
 {
     $info = new minject_InjectorInfo(null, new _hx_array(array()));
     $this->addClassToInfo($forClass, $info, new _hx_array(array()));
     haxe_ds_ArraySort::sort($info->fields, array(new _hx_lambda(array(&$forClass, &$info), "minject_Injector_0"), 'execute'));
     if ($info->ctor === null) {
         $info->ctor = new minject_point_ConstructorInjectionPoint(new _hx_array(array()));
     }
     return $info;
 }