1 2 3 4 5 6 7 8 9 10 11
structure NonEmptyList (α : Type) where head : α tail : List α namespace NonEmptyList def toList (l : NonEmptyList α) : List α := l.head :: l.tail def ofList (l : List α) (_ : ¬l.isEmpty) : NonEmptyList α := match l with | head :: tail => {head, tail}