take is:exact

take n, applied to a list xs, returns the prefix of xs of length n, or xs itself if n >= length xs.
>>> take 5 "Hello World!"
"Hello"

>>> take 3 [1,2,3,4,5]
[1,2,3]

>>> take 3 [1,2]
[1,2]

>>> take 3 []
[]

>>> take (-1) [1,2]
[]

>>> take 0 [1,2]
[]
It is an instance of the more general genericTake, in which n may be of any integral type.
take n xs returns the first n elements of xs.
O(1) take n, applied to a ByteString xs, returns the prefix of xs of length n, or xs itself if n > length xs.
O(n/c) take n, applied to a ByteString xs, returns the prefix of xs of length n, or xs itself if n > length xs.
O(n) take n, applied to a ShortByteString xs, returns the prefix of xs of length n, or xs itself if n > length xs. Note: copies the entire byte array
O(n) take n, applied to a Text, returns the prefix of the Text of length n, or the Text itself if n is greater than the length of the Text.
O(n) take n, applied to a stream, returns the prefix of the stream of length n, or the stream itself if n is greater than the length of the stream. Properties
unstream . take n . stream = take n
O(n) take n, applied to a Text, returns the prefix of the Text of length n, or the Text itself if n is greater than the length of the Text.
Take a given number of entries in key order, beginning with the smallest keys.
take n = fromDistinctAscList . take n . toAscList
The first i elements of a sequence. If i is negative, take i s yields the empty sequence. If the sequence contains fewer than i elements, the whole sequence is returned.
Take a given number of elements in order, beginning with the smallest ones.
take n = fromDistinctAscList . take n . toAscList
O(1) Yield at the first n elements without copying. The vector may contain less than n elements, in which case it is returned unchanged.
The first n elements
The first n elements
O(1) Yield the first n elements without copying. The vector may contain less than n elements, in which case it is returned unchanged.
Take the n first elements of the mutable vector without making a copy. For negative n, the empty vector is returned. If n is larger than the vector's length, the vector is returned unchanged.
Take the n first elements of the mutable vector without making a copy. For negative n, the empty vector is returned. If n is larger than the vector's length, the vector is returned unchanged.
O(1) Yield at the first n elements without copying. The vector may contain less than n elements, in which case it is returned unchanged.
Take the n first elements of the mutable vector without making a copy. For negative n, the empty vector is returned. If n is larger than the vector's length, the vector is returned unchanged.
O(1) Yield at the first n elements without copying. The vector may contain less than n elements, in which case it is returned unchanged.
Take the n first elements of the mutable vector without making a copy. For negative n, the empty vector is returned. If n is larger than the vector's length, the vector is returned unchanged.
O(1) Yield at the first n elements without copying. The vector may contain less than n elements, in which case it is returned unchanged.
Take the n first elements of the mutable vector without making a copy. For negative n, the empty vector is returned. If n is larger than the vector's length, the vector is returned unchanged.
Consume exactly n bytes of input.