<div dir="ltr"><div><br></div><div>For more or less the same reasons that "singleton" was considered worth being added to Data.List I propose to add "cons" to Data.List as well.</div><div><br></div><div>## Motivation</div><div><br></div><div>Sometimes it is convenient to have a function to prepend an element to a list in pointless style code. But of the existing ways none of them are as clear as a separate monomorphic function.<br></div><div><br></div><div>- "( : )" is subjectively ugly</div><div>- "(\x xs -> x : xs)" is syntactically noisy<br></div><div><br></div><div>Purescript also has a "Cons" function so why can't we have one too?<br></div><div><br></div><div>We already have "Data.List.uncons" and so for symmetry one would also expect to find "Data.List.cons".</div><div><br></div><div>Many sequence like APIs have a "cons" function such as</div><div><br></div><div><a href="https://www.stackage.org/haddock/nightly-2019-09-11/vector-0.12.0.3/Data-Vector.html#v:cons">https://www.stackage.org/haddock/nightly-2019-09-11/vector-0.12.0.3/Data-Vector.html#v:cons</a></div><div><br></div><div><div>I can't be the only that wants this function, right?<br></div><div></div></div><div></div><div><br></div><div>## Proposal</div><div><br></div><div>Add<br></div><div><br></div><div></div><div></div><div><span style="font-family:monospace">cons :: x -> [x] -> [x]<br></span></div><div><span style="font-family:monospace">cons = (:)</span></div><div><br></div><div>to Data.List<br></div><div><br></div><div><br></div></div>