library test;
import self as self;
import "dart:core" as core;

static method _mergeSort<T extends core::Object>((self::_mergeSort::T) → self::_mergeSort::T list, (self::_mergeSort::T, self::_mergeSort::T) → core::int compare, (self::_mergeSort::T) → self::_mergeSort::T target) → void {
  self::_mergeSort<dynamic>(list, compare, target);
  self::_mergeSort<dynamic>(list, compare, list);
  self::_mergeSort<dynamic>(target, compare, target);
  self::_mergeSort<dynamic>(target, compare, list);
}
static method main() → dynamic {}
