library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;

extension HashAll on core::Iterable<dynamic> {
  method hashAll = self::HashAll|hashAll;
  tearoff hashAll = self::HashAll|get#hashAll;
}
extension HashAllList on core::List<dynamic> {
  method hashAll = self::HashAllList|hashAll;
  tearoff hashAll = self::HashAllList|get#hashAll;
}
static method HashAll|hashAll(lowered final core::Iterable<dynamic> #this) → core::int
  ;
static method HashAll|get#hashAll(lowered final core::Iterable<dynamic> #this) → () → core::int
  return () → core::int => self::HashAll|hashAll(#this);
static method HashAllList|hashAll(lowered final core::List<dynamic> #this) → core::int
  ;
static method HashAllList|get#hashAll(lowered final core::List<dynamic> #this) → () → core::int
  return () → core::int => self::HashAllList|hashAll(#this);
static method main() → void
  ;
