@@ -125,49 +125,49 @@ type ChangeableIndexList<'T>(elements: IndexList<'T>) =
125125 /// Note that the position can be equal to the count of the list.
126126 member x.InsertAt ( index : int , element : 'T ) =
127127 if index < 0 || index > history.State.Count then raise <| System.IndexOutOfRangeException()
128- let l , s , r = MapExt.neighboursAt index history.State.Content
128+ let struct ( l , s , r ) = MapExt.neighboursAtV index history.State.Content
129129 let r =
130130 match s with
131- | Some s -> Some s
132- | None -> r
131+ | ValueSome s -> ValueSome s
132+ | ValueNone -> r
133133
134134 let index =
135135 match l, r with
136- | Some ( before,_), Some ( after,_) -> Index.between before after
137- | None , Some ( after,_) -> Index.before after
138- | Some ( before,_), None -> Index.after before
139- | None , None -> Index.after Index.zero
136+ | ValueSome ( before,_), ValueSome ( after,_) -> Index.between before after
137+ | ValueNone , ValueSome ( after,_) -> Index.before after
138+ | ValueSome ( before,_), ValueNone -> Index.after before
139+ | ValueNone , ValueNone -> Index.after Index.zero
140140
141141 history.Perform ( IndexListDelta.single index ( Set element)) |> ignore
142142 index
143143
144144 /// Inserts an element directly after the given index and returns the new index for the element.
145145 member x.InsertAfter ( index : Index , element : 'T ) =
146- let _l , s , r = MapExt.neighbours index history.State.Content
146+ let struct ( _ , s , r ) = MapExt.neighboursV index history.State.Content
147147 match s with
148- | None ->
148+ | ValueNone ->
149149 history.Perform ( IndexListDelta.single index ( Set element)) |> ignore
150150 index
151- | Some _ ->
151+ | ValueSome _ ->
152152 let index =
153153 match r with
154- | Some ( r,_) -> Index.between index r
155- | None -> Index.after index
154+ | ValueSome ( r,_) -> Index.between index r
155+ | ValueNone -> Index.after index
156156 history.Perform ( IndexListDelta.single index ( Set element)) |> ignore
157157 index
158158
159159 /// Inserts an element directly before the given index and returns the new index for the element.
160160 member x.InsertBefore ( index : Index , element : 'T ) =
161- let l , s , _r = MapExt.neighbours index history.State.Content
161+ let struct ( l , s , _ ) = MapExt.neighboursV index history.State.Content
162162 match s with
163- | None ->
163+ | ValueNone ->
164164 history.Perform ( IndexListDelta.single index ( Set element)) |> ignore
165165 index
166- | Some _ ->
166+ | ValueSome _ ->
167167 let index =
168168 match l with
169- | Some ( l,_) -> Index.between l index
170- | None -> Index.before index
169+ | ValueSome ( l,_) -> Index.between l index
170+ | ValueNone -> Index.before index
171171 history.Perform ( IndexListDelta.single index ( Set element)) |> ignore
172172 index
173173
@@ -205,7 +205,7 @@ type ChangeableIndexList<'T>(elements: IndexList<'T>) =
205205 /// Removes the element at the given position and returns its Index.
206206 member x.RemoveAt ( index : int ) =
207207 if index < 0 || index >= history.State.Count then raise <| System.IndexOutOfRangeException()
208- let ( index , _ ) = history.State.Content |> MapExt.item index
208+ let struct ( index , _ ) = history.State.Content |> MapExt.itemV index
209209 history.Perform( IndexListDelta.single index Remove) |> ignore
210210 index
211211
0 commit comments