# Seq overview

# Summary

# Types

# Seq

type Seq<A> = Iterable<A>

# Functions

# Seq.of

<A>(value: A) => Seq<A>

# Seq.map

<A, B>(fn: (value: A) => B) => (seq: Seq<A>) => Seq<B>

# Seq.uniq

<A>(fn: (value: A) => string | number) => (seq: Seq<A>) => Seq<A>

# Seq.filter

<A, B extends A>(fn: Refinement<A, B>): (arr: Seq<A>) => Seq<B>
<A>(fn: Predicate<A>): (arr: Seq<A>) => Seq<A>

# Seq.range

(from: number, to: number, step?: number) => Generator<number, void, unknown>

# Seq.slice

(start?: number | undefined, end?: number | undefined) => <A>(seq: Seq<A>) => Seq<A>

# Seq.take

(nb: number) => <A>(seq: Seq<A>) => Seq<A>

# Seq.skip

(nb: number) => <A>(seq: Seq<A>) => Seq<A>

# Seq.head

<A>(seq: Seq<A>) => A | undefined

# Seq.last

<A>(seq: Seq<A>) => A | undefined

# Seq.toArray

<A>(seq: Seq<A>) => Array<A>