tail package:relude

O(1). Return all the elements of a NonEmpty list after the head element. Actual type of this function is the following:
tail :: NonEmpty a -> [a]
but it was given a more complex type to provide friendlier compile time errors.
>>> tail ('a' :| "bcde")
"bcde"

>>> tail [0..5 :: Int]
...
... 'tail' works with 'NonEmpty', not ordinary lists.
Possible fix:
Replace: [Int]
With:    NonEmpty Int
...
However, you can use 'tail' with the ordinary lists.
Apply 'viaNonEmpty' function from relude:
viaNonEmpty tail (yourList)
Note, that this will return 'Maybe [Int]'
therefore it is a safe function unlike 'tail' from the standard Prelude
...

>>> tail (Just 'a')
...
... 'tail' works with 'NonEmpty Char' lists
But given: Maybe Char
...
Extract the elements after the head of a list, which must be non-empty. To disable the warning about partiality put {-# OPTIONS_GHC -Wno-x-partial -Wno-unrecognised-warning-flags #-} at the top of the file. To disable it throughout a package put the same options into ghc-options section of Cabal file. To disable it in GHCi put :set -Wno-x-partial -Wno-unrecognised-warning-flags into ~/.ghci config file. See also the migration guide.

Examples

>>> tail [1, 2, 3]
[2,3]
>>> tail [1]
[]
>>> tail []
*** Exception: Prelude.tail: empty list
The tails function returns all final segments of the argument, longest first.

Laziness

Note that tails has the following strictness property: tails _|_ = _|_ : _|_
>>> tails undefined
[*** Exception: Prelude.undefined
>>> drop 1 (tails [undefined, 1, 2])
[[1, 2], [2], []]

Examples

>>> tails "abc"
["abc","bc","c",""]
>>> tails [1, 2, 3]
[[1,2,3],[2,3],[3],[]]
>>> tails []
[[]]