tails [1,2,3] == [1,2,3] :| [[2,3], [3], []] tails [1] == [1] :| [[]] tails [] == [] :| []
>>> tails1 undefined *** Exception: Prelude.undefined
>>> drop 1 (tails1 [undefined, 1, 2]) [1 :| [2],2 :| []]
>>> tails1 "abc" ['a' :| "bc",'b' :| "c",'c' :| ""]
>>> tails1 [1, 2, 3] [1 :| [2,3],2 :| [3],3 :| []]
>>> tails1 [] []
tails1 (1 :| [2,3]) == (1 :| [2,3]) :| [2 :| [3], 3 :| []] tails1 (1 :| []) == (1 :| []) :| []