0size returns positive valuesavghead and tail are Safefoldr1averagemapinitinit'insertLists ElementsListkeysMapevalcreateunsafeTakeunpackchophead and tail are Safefoldr1averagemapinitinit'{#assdidl} ===========
Previously we saw how to refine the list data definition to get ordered lists:
{-@ data OList a =
OEmp
| (:<:) { oHd :: a
, oTl :: OList {v:a | oHd <= v}} @-}