diff --git a/src/FSharpPlus/Data/NonEmptyList.fs b/src/FSharpPlus/Data/NonEmptyList.fs index 38281c520..226c34991 100644 --- a/src/FSharpPlus/Data/NonEmptyList.fs +++ b/src/FSharpPlus/Data/NonEmptyList.fs @@ -8,6 +8,7 @@ open FSharpPlus.Control /// A type-safe list that contains at least one element. +[] type NonEmptyList<'t> = {Head: 't; Tail: 't list} with interface IEnumerable<'t> with member x.GetEnumerator () = (let {Head = x; Tail = xs} = x in seq (x::xs)).GetEnumerator () interface System.Collections.IEnumerable with member x.GetEnumerator () = (let {Head = x; Tail = xs} = x in seq (x::xs)).GetEnumerator () :> System.Collections.IEnumerator @@ -15,6 +16,8 @@ type NonEmptyList<'t> = {Head: 't; Tail: 't list} with interface IReadOnlyList<'t> with member s.Item with get index = s.Item index interface NonEmptySeq<'t> with member s.First = s.Head + member private this.StructuredFormatDisplay = "nelist {" + (sprintf "%A" (this.Head::this.Tail)).[1..^1] + "}" + [] member this.head = let {Head = a; Tail = _} = this in a