anchor.diff: -﻿namespace FSharpPlus.Data
  +namespace FSharpPlus.Data
   
   open System.Text
   open System.Runtime.InteropServices
  
positive.code:     interface System.Collections.IEnumerable with member x.GetEnumerator () = (let {Head = x; Tail = xs} = x in seq (x::xs)).GetEnumerator () :> System.Collections.IEnumerator
      interface IReadOnlyCollection<'t>        with member s.Count = 1 + List.length s.Tail
      interface IReadOnlyList<'t>              with member s.Item with get index = s.Item index
      member this.head = let {Head = a; Tail = _} = this in a
      member this.tail = let           {Tail = a} = this in a
      member this.Item = function 0 -> this.head | n -> this.tail.[n-1]
      member this.GetSlice = function
          | None  , None
          | Some 0, None
  
negative.code:     #endif
  
      static member Replace (source: NonEmptyList<'T>, oldValue: NonEmptyList<'T>, newValue: NonEmptyList<'T>, _impl: Replace ) =
          let lst = source |> NonEmptyList.toSeq |> Seq.replace oldValue newValue |> Seq.toList
          {Head = lst.Head; Tail = lst.Tail}
  
  
  [<AutoOpen>]
  module NonEmptyListBuilder =
      type NelBuilder () =
          member __.Zero () = invalidOp "A NonEmptyList doesn't support the Zero operation."
          member __.Combine (a: NonEmptyList<'T>, b) = a ++ b
          member __.Yield  x = NonEmptyList.singleton x
          member __.Delay expr = expr () :  NonEmptyList<'T>
      let nel = NelBuilder ()
  