
first<T>(array:T[]) -> T!first<T>(array:T[], _ n:Int) -> T[]!initial<T>(array:T[], _ n: Int = 1) -> T[]last<T>(array: T[]) -> Tlast<T>(array: T[], _ n: Int) -> T[]rest<T>(array: T[], _ n: Int = 1) -> T[]compact<T : LogicValue>(array: T[]) -> T[]flatten<T>(array: T[][]) -> T[]without<T: Equatable>(array: T[], values: T...) -> T[]partition<T>(array: T[], condition: T -> Bool ) -> (T[], T[])union<T : Equatable>(arrays: T[]...) -> T[]intersection<T : Equatable>(arrays: T[]...) -> T[]difference<T: Equatable>(array: T[], others: T[]...) -> T[]uniq<T : Equatable>(array: T[], isSorted: Bool = false) -> T[]uniq<T, U : Equatable>(array: T[], isSorted: Bool, transform: T -> U) -> T[]zip<T, U>(array0: T[], _ array1: U[]) -> (T, U)[]object<K : Hashable, V>(#keys: K[], values:V[] ) -> Dictionary<K, V>object<K : Hashable, V>(keyAndValues: Array<(K, V)>) -> Dictionary<K, V>indexOf<T: Equatable>(array: T[], value:T) -> Int?indexOf<T: Comparable>(array: T[], value:T, isSorted: Bool) -> Int?lastIndexOf<T : Equatable>(array : T[], value: T) -> Int?lastIndexOf<T : Equatable>(array : T[], value: T, from: Int) -> Int?sortedIndex<T, U : Comparable>(array : T[], value : T, transform: T -> U ) -> Int?range(stop: Int) -> Int[]range(#start: Int, stop: Int) -> Int[]range(#start: Int, stop: Int, step: Int) -> Int[]This index has the same order as Underscore.js