@@ -57,8 +57,9 @@ public export
57data SplitRec : List a -> Type where
57data SplitRec : List a -> Type where
58 SplitRecNil : SplitRec []
58 SplitRecNil : SplitRec []
59 SplitRecOne : {x : a} -> SplitRec [x]
59 SplitRecOne : {x : a} -> SplitRec [x]
60− SplitRecPair : {xs, ys : List a} -> -- Explicit, don't erase
60+ SplitRecPair : {lefts, rights : List a} -> -- Explicit, don't erase
61+ (lrec : Lazy (SplitRec lefts)) ->
61− Lazy (SplitRec xs) -> Lazy (SplitRec ys) -> SplitRec (xs ++ ys)
62+ (rrec : Lazy (SplitRec rights)) -> SplitRec (lefts ++ rights)
64splitRecFix : (xs : List a) -> ((ys : List a) -> smaller ys xs -> SplitRec ys) ->
65splitRecFix : (xs : List a) -> ((ys : List a) -> smaller ys xs -> SplitRec ys) ->
@@ -87,7 +88,7 @@ data SnocList : List a -> Type where
87snocListHelp : SnocList xs -> (ys : List a) -> SnocList (xs ++ ys)
88snocListHelp : SnocList xs -> (ys : List a) -> SnocList (xs ++ ys)
88snocListHelp {xs} x [] = rewrite appendNilRightNeutral xs in x
89snocListHelp {xs} x [] = rewrite appendNilRightNeutral xs in x
89snocListHelp {xs} x (y :: ys)
90snocListHelp {xs} x (y :: ys)
90− = rewrite appendAssociative xs [y] ys in snocListHelp (Snoc x {x=y}) ys
91+ = rewrite appendAssociative xs [y] ys in snocListHelp (Snoc x) ys
92||| Covering function for the `SnocList` view
93||| Covering function for the `SnocList` view
93||| Constructs the view in linear time
94||| Constructs the view in linear time