extension ListExtension<T> on List<T> {
  /// Return a new list with only distinct elements
  List<T> distinct() {
    final s = Set();
    return this.where((element) => s.add(element)).toList();
  }

  Iterable<T> takeIndex(List<int> indexes) => indexes.map((e) => this[e]);
}