module ck/vectorck/vector
import std/core/undivstd/core/undiv
inline extern unsafe-vectorck/vector/unsafe-vector: forall<a> (n : ssize_t) -> vector<a>(n: ssize_tstd/core/types/ssize_t: V): totalstd/core/types/total: E vectorstd/core/types/vector: V -> V<aa: V>
c inline "kk_vector_alloc(#1, kk_box_null(), kk_context())"
inline extern unsafe-idxck/vector/unsafe-idx: forall<a> (v : vector<a>, index : ssize_t) -> a(^v: vectorstd/core/types/vector: V -> V<aa: V>, index: ssize_tstd/core/types/ssize_t: V): totalstd/core/types/total: E aa: V
c "kk_vector_at_borrow"
inline extern unsafe-assignck/vector/unsafe-assign: forall<a> (v : vector<a>, index : ssize_t, value : a) -> ()(v: vectorstd/core/types/vector: V -> V<aa: V>, index: ssize_tstd/core/types/ssize_t: V, value: aa: V): totalstd/core/types/total: E (std/core/types/unit: V)std/core/types/unit: V
c "kk_vector_unsafe_assign"
pub fun sortck/vector/sort: forall<a,e> (v : vector<a>, @implicit/(<) : (a, a) -> <pure|e> bool) -> <pure|e> vector<a>(vv: vector<$85>: vectorstd/core/types/vector: V -> V<aa: V>, (@implicit/<)?(<): ($85, $85) -> <pure|$86> bool: (aa: V, aa: V) -> <purestd/core/pure: E|ee: E> boolstd/core/types/bool: V)result: -> <pure|1148> vector<1147>: <purestd/core/pure: E|ee: E> vectorstd/core/types/vector: V -> V<aa: V>
var resres: local-var<$96,vector<$85>> := vv: vector<$85>
var temptemp: local-var<$96,vector<$85>> := unsafe-vectorck/vector/unsafe-vector: (n : ssize_t) -> <div,exn,local<$96>|$86> vector<$85>((vv: vector<$85>.lengthstd/core/vector/length: (v : vector<$85>) -> <div,exn,local<$96>|$86> int /std/core/int/(/): (x : int, y : int) -> <div,exn,local<$96>|$86> int 2literal: int
dec = 2
hex8 = 0x02
bit8 = 0b00000010).ssize_tstd/core/int/ssize_t: (i : int) -> <div,exn,local<$96>|$86> ssize_t)
var pp: local-var<$96,int> := 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000
var l1l1: local-var<$96,int> := 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000
var l2l2: local-var<$96,int> := 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000
fun looploop: (l : int, r : int) -> <pure,local<$96>|$86> ()(ll: int: intstd/core/types/int: V, rr: int: intstd/core/types/int: V)result: -> <div,exn,local<$96>|$86> ()
if rr: int -std/core/int/(-): (x : int, y : int) -> <div,exn,local<$96>|$86> int ll: int <=std/core/int/(<=): (x : int, y : int) -> <div,exn,local<$96>|$86> bool 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001 then
returnreturn: () (std/core/types/Unit: ())std/core/types/Unit: ()
val mm: int = (ll: int +std/core/int/(+): (x : int, y : int) -> <div,exn,local<$96>|$86> int rr: int) /std/core/int/(/): (x : int, y : int) -> <div,exn,local<$96>|$86> int 2literal: int
dec = 2
hex8 = 0x02
bit8 = 0b00000010
looploop: (l : int, r : int) -> <div,exn,local<$96>|$86> ()(ll: int.pretend-decreasingstd/core/undiv/pretend-decreasing: (x : int) -> <div,exn,local<$96>|$86> int, mm: int)
looploop: (l : int, r : int) -> <div,exn,local<$96>|$86> ()(mm: int.pretend-decreasingstd/core/undiv/pretend-decreasing: (x : int) -> <div,exn,local<$96>|$86> int, rr: int)
forstd/core/range/for: (start : int, end : int, action : (int) -> <local<$96>,div,exn|$86> ()) -> <local<$96>,div,exn|$86> ()(ll: int, mm: int -std/core/int/(-): (x : int, y : int) -> <local<$96>,div,exn|$86> int 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001) fnfn: (i : int) -> <local<$96>,div,exn|$86> ()(ii: int)
temptemp: vector<$85>
?hdiv=iev@301.unsafe-assignck/vector/unsafe-assign: (v : vector<$85>, index : ssize_t, value : $85) -> <local<$96>,div,exn|$86> ()((ii: int -std/core/int/(-): (x : int, y : int) -> <local<$96>,div,exn|$86> int ll: int).ssize_tstd/core/int/ssize_t: (i : int) -> <local<$96>,div,exn|$86> ssize_t, resres: vector<$85>
?hdiv=iev@332.unsafe-idxck/vector/unsafe-idx: (v : vector<$85>, index : ssize_t) -> <local<$96>,div,exn|$86> $85(ii: int.ssize_tstd/core/int/ssize_t: (i : int) -> <local<$96>,div,exn|$86> ssize_t))
pp: local-var<$96,int> :=std/core/types/local-set: (v : local-var<$96,int>, assigned : int) -> <local<$96>,div,exn|$86> () ll: int
l1l1: local-var<$96,int> :=std/core/types/local-set: (v : local-var<$96,int>, assigned : int) -> <local<$96>,div,exn|$86> () ll: int
l2l2: local-var<$96,int> :=std/core/types/local-set: (v : local-var<$96,int>, assigned : int) -> <local<$96>,div,exn|$86> () mm: int
whilestd/core/while: (predicate : () -> <div,local<$96>,exn|$86> bool, action : () -> <div,local<$96>,exn|$86> ()) -> <div,local<$96>,exn|$86> () { l1l1: int
?hdiv=iev@401 <std/core/int/(<): (x : int, y : int) -> <local<$96>,div,exn|$86> bool mm: int &&std/core/types/(&&): (x : bool, y : bool) -> <local<$96>,div,exn|$86> bool l2l2: int
?hdiv=iev@449 <std/core/int/(<): (x : int, y : int) -> <local<$96>,div,exn|$86> bool rr: int }
val v1v1: $85 = temptemp: vector<$85>
?hdiv=iev@506.unsafe-idxck/vector/unsafe-idx: (v : vector<$85>, index : ssize_t) -> <local<$96>,div,exn|$86> $85((l1l1: int
?hdiv=iev@528 -std/core/int/(-): (x : int, y : int) -> <local<$96>,div,exn|$86> int ll: int).ssize_tstd/core/int/ssize_t: (i : int) -> <local<$96>,div,exn|$86> ssize_t)
val v2v2: $85 = resres: vector<$85>
?hdiv=iev@550.unsafe-idxck/vector/unsafe-idx: (v : vector<$85>, index : ssize_t) -> <local<$96>,div,exn|$86> $85(l2l2: int
?hdiv=iev@568.ssize_tstd/core/int/ssize_t: (i : int) -> <local<$96>,div,exn|$86> ssize_t)
if mask<local_1: H>{ v2v2: $85 <?(<): ($85, $85) -> <pure|$86> bool v1v1: $85 } then
resres: vector<$85>
?hdiv=iev@630.unsafe-assignck/vector/unsafe-assign: (v : vector<$85>, index : ssize_t, value : $85) -> <local<$96>,div,exn|$86> ()(pp: int
?hdiv=iev@648.ssize_tstd/core/int/ssize_t: (i : int) -> <local<$96>,div,exn|$86> ssize_t, resres: vector<$85>
?hdiv=iev@669.unsafe-idxck/vector/unsafe-idx: (v : vector<$85>, index : ssize_t) -> <local<$96>,div,exn|$86> $85(l2l2: int
?hdiv=iev@687.ssize_tstd/core/int/ssize_t: (i : int) -> <local<$96>,div,exn|$86> ssize_t))
l2l2: local-var<$96,int> :=std/core/types/local-set: (v : local-var<$96,int>, assigned : int) -> <local<$96>,div,exn|$86> () l2l2: int
?hdiv=iev@717 +std/core/int/(+): (x : int, y : int) -> <local<$96>,div,exn|$86> int 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001
else
resres: vector<$85>
?hdiv=iev@740.unsafe-assignck/vector/unsafe-assign: (v : vector<$85>, index : ssize_t, value : $85) -> <local<$96>,div,exn|$86> ()(pp: int
?hdiv=iev@758.ssize_tstd/core/int/ssize_t: (i : int) -> <local<$96>,div,exn|$86> ssize_t, temptemp: vector<$85>
?hdiv=iev@779.unsafe-idxck/vector/unsafe-idx: (v : vector<$85>, index : ssize_t) -> <local<$96>,div,exn|$86> $85((l1l1: int
?hdiv=iev@801 -std/core/int/(-): (x : int, y : int) -> <local<$96>,div,exn|$86> int ll: int).ssize_tstd/core/int/ssize_t: (i : int) -> <local<$96>,div,exn|$86> ssize_t))
l1l1: local-var<$96,int> :=std/core/types/local-set: (v : local-var<$96,int>, assigned : int) -> <local<$96>,div,exn|$86> () l1l1: int
?hdiv=iev@832 +std/core/int/(+): (x : int, y : int) -> <local<$96>,div,exn|$86> int 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001
pp: local-var<$96,int> :=std/core/types/local-set: (v : local-var<$96,int>, assigned : int) -> <local<$96>,div,exn|$86> () pp: int
?hdiv=iev@866 +std/core/int/(+): (x : int, y : int) -> <local<$96>,div,exn|$86> int 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001
whilestd/core/while: (predicate : () -> <div,local<$96>,exn|$86> bool, action : () -> <div,local<$96>,exn|$86> ()) -> <div,local<$96>,exn|$86> () { l1l1: int
?hdiv=iev@892 <std/core/int/(<): (x : int, y : int) -> <local<$96>,div,exn|$86> bool mm: int }
resres: vector<$85>
?hdiv=iev@949.unsafe-assignck/vector/unsafe-assign: (v : vector<$85>, index : ssize_t, value : $85) -> <local<$96>,div,exn|$86> ()(pp: int
?hdiv=iev@967.ssize_tstd/core/int/ssize_t: (i : int) -> <local<$96>,div,exn|$86> ssize_t, temptemp: vector<$85>
?hdiv=iev@988.unsafe-idxck/vector/unsafe-idx: (v : vector<$85>, index : ssize_t) -> <local<$96>,div,exn|$86> $85((l1l1: int
?hdiv=iev@1010 -std/core/int/(-): (x : int, y : int) -> <local<$96>,div,exn|$86> int ll: int).ssize_tstd/core/int/ssize_t: (i : int) -> <local<$96>,div,exn|$86> ssize_t))
l1l1: local-var<$96,int> :=std/core/types/local-set: (v : local-var<$96,int>, assigned : int) -> <local<$96>,div,exn|$86> () l1l1: int
?hdiv=iev@1041 +std/core/int/(+): (x : int, y : int) -> <local<$96>,div,exn|$86> int 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001
pp: local-var<$96,int> :=std/core/types/local-set: (v : local-var<$96,int>, assigned : int) -> <local<$96>,div,exn|$86> () pp: int
?hdiv=iev@1072 +std/core/int/(+): (x : int, y : int) -> <local<$96>,div,exn|$86> int 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001
looploop: (l : int, r : int) -> <pure,local<$96>|$86> ()(0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000, vv: vector<$85>.lengthstd/core/vector/length: (v : vector<$85>) -> <div,exn,local<$96>|$86> int)
resres: vector<$85>
?hdiv=iev@1109
pub fun uniqck/vector/uniq: forall<a,e> (v : vector<a>, @implicit/(==) : (a, a) -> <pure|e> bool) -> <pure|e> vector<a>(vv: vector<$3654>: vectorstd/core/types/vector: V -> V<aa: V>, (@implicit/==)?(==): ($3654, $3654) -> <pure|$3655> bool: (aa: V, aa: V) -> <purestd/core/pure: E|ee: E> boolstd/core/types/bool: V)result: -> <pure|4016> vector<4015>: <purestd/core/pure: E|ee: E> vectorstd/core/types/vector: V -> V<aa: V>
fun uniq-nextuniq-next: (i : int, j : int) -> <pure|$3655> int(ii: int, jj: int)result: -> <div,exn|$3655> int
if jj: int <std/core/int/(<): (x : int, y : int) -> <div,exn|$3655> bool vv: vector<$3654>.lengthstd/core/vector/length: (v : vector<$3654>) -> <div,exn|$3655> int &&std/core/types/(&&): (x : bool, y : bool) -> <div,exn|$3655> bool vv: vector<$3654>[jj: int] ==?(==): ($3654, $3654) -> <pure|$3655> bool vv: vector<$3654>[ii: int] then
uniq-nextuniq-next: (i : int, j : int) -> <div,exn|$3655> int(ii: int, (jj: int +std/core/int/(+): (x : int, y : int) -> <div,exn|$3655> int 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001).pretend-decreasingstd/core/undiv/pretend-decreasing: (x : int) -> <div,exn|$3655> int)
else
jj: int
fun uniq-loopuniq-loop: (i : int, acc : list<$3654>) -> <pure|$3655> list<$3654>(ii: int, accacc: list<$3654>)result: -> <div,exn|$3655> list<$3654>
if ii: int ==std/core/int/(==): (x : int, y : int) -> <div,exn|$3655> bool vv: vector<$3654>.lengthstd/core/vector/length: (v : vector<$3654>) -> <div,exn|$3655> int then
accacc: list<$3654>
else
uniq-loopuniq-loop: (i : int, acc : list<$3654>) -> <div,exn|$3655> list<$3654>(uniq-nextuniq-next: (i : int, j : int) -> <pure|$3655> int(ii: int, ii: int +std/core/int/(+): (x : int, y : int) -> <div,exn|$3655> int 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001), Consstd/core/types/Cons: forall<a> (head : a, tail : list<a>) -> list<a>(vv: vector<$3654>[ii: int], accacc: list<$3654>))
uniq-loopuniq-loop: (i : int, acc : list<$3654>) -> <pure|$3655> list<$3654>(0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000, [std/core/types/Nil: forall<a> list<a>]std/core/types/Nil: forall<a> list<a>).reversestd/core/list/reverse: (xs : list<$3654>) -> <div,exn|$3655> list<$3654>.vectorstd/core/vector/list/vector: (xs : list<$3654>) -> <div,exn|$3655> vector<$3654>
pub fun z-algorithmck/vector/z-algorithm: forall<a> (v : vector<a>, @implicit/(==) : (a, a) -> bool) -> exn vector<int>(vv: vector<$1155>: vectorstd/core/types/vector: V -> V<aa: V>, (@implicit/==)?(==): ($1155, $1155) -> bool: (aa: V, aa: V) -> boolstd/core/types/bool: V)result: -> exn vector<int>: exnstd/core/exn/exn: (E, V) -> V vectorstd/core/types/vector: V -> V<intstd/core/types/int: V>
val sizesize: int = vv: vector<$1155>.lengthstd/core/vector/length: (v : vector<$1155>) -> exn int
if sizesize: int ==std/core/int/(==): (x : int, y : int) -> exn bool 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000 then returnreturn: vector<int> vectorstd/core/vector/vector: (n : int, default : int) -> exn vector<int>(0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000, 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000)std/core/types/Unit: ()
pretend-no-divstd/core/undiv/pretend-no-div: (action : () -> <div,exn> vector<int>) -> exn vector<int> {
var resres: local-var<$1322,vector<int>> := vectorstd/core/vector/vector: (n : int, default : int) -> <div,exn,local<$1322>> vector<int>(sizesize: int, 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000)
resres: local-var<$1322,vector<int>>[0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000] := sizesize: int
var ii: local-var<$1322,int> := 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001
var jj: local-var<$1322,int> := 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000
var kk: local-var<$1322,int> := 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000
whilestd/core/while: (predicate : () -> <div,local<$1322>,exn> bool, action : () -> <div,local<$1322>,exn> ()) -> <div,local<$1322>,exn> () { ii: int
?hdiv=iev@1418 <std/core/int/(<): (x : int, y : int) -> <local<$1322>,div,exn> bool sizesize: int }
whilestd/core/while: (predicate : () -> <div,exn,local<$1322>> bool, action : () -> <div,exn,local<$1322>> ()) -> <div,exn,local<$1322>> () { ii: int
?hdiv=iev@1478 +std/core/int/(+): (x : int, y : int) -> <local<$1322>,exn,div> int jj: int
?hdiv=iev@1497 <std/core/int/(<): (x : int, y : int) -> <local<$1322>,exn,div> bool sizesize: int &&std/core/types/(&&): (x : bool, y : bool) -> <exn,local<$1322>,div> bool vv: vector<$1155>[jj: int
?hdiv=iev@1592] ==?(==): ($1155, $1155) -> <exn,local<$1322>,div> bool vv: vector<$1155>[ii: int
?hdiv=iev@1684 +std/core/int/(+): (x : int, y : int) -> <local<$1322>,exn,div> int jj: int
?hdiv=iev@1698] }
jj: local-var<$1322,int> :=std/core/types/local-set: (v : local-var<$1322,int>, assigned : int) -> <local<$1322>,div,exn> () jj: int
?hdiv=iev@1734 +std/core/int/(+): (x : int, y : int) -> <local<$1322>,div,exn> int 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001
resres: local-var<$1322,vector<int>>[ii: int
?hdiv=iev@1765] := jj: int
?hdiv=iev@1779
if jj: int
?hdiv=iev@1824 ==std/core/int/(==): (x : int, y : int) -> <local<$1322>,div,exn> bool 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000 then
ii: local-var<$1322,int> :=std/core/types/local-set: (v : local-var<$1322,int>, assigned : int) -> <local<$1322>,div,exn> () ii: int
?hdiv=iev@1946 +std/core/int/(+): (x : int, y : int) -> <local<$1322>,div,exn> int 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001
returnreturn: () (std/core/types/Unit: ())std/core/types/Unit: ()
kk: local-var<$1322,int> :=std/core/types/local-set: (v : local-var<$1322,int>, assigned : int) -> <local<$1322>,div,exn> () 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001
whilestd/core/while: (predicate : () -> <div,exn,local<$1322>> bool, action : () -> <div,exn,local<$1322>> ()) -> <div,exn,local<$1322>> () { ii: int
?hdiv=iev@1989 +std/core/int/(+): (x : int, y : int) -> <local<$1322>,exn,div> int kk: int
?hdiv=iev@2008 <std/core/int/(<): (x : int, y : int) -> <local<$1322>,exn,div> bool sizesize: int &&std/core/types/(&&): (x : bool, y : bool) -> <exn,local<$1322>,div> bool kk: int
?hdiv=iev@2056 +std/core/int/(+): (x : int, y : int) -> <exn,local<$1322>,div> int resres: vector<int>
?hdiv=iev@2086[kk: int
?hdiv=iev@2100] <std/core/int/(<): (x : int, y : int) -> <exn,local<$1322>,div> bool jj: int
?hdiv=iev@2144 }
resres: local-var<$1322,vector<int>>[ii: int
?hdiv=iev@2186 +std/core/int/(+): (x : int, y : int) -> <local<$1322>,exn,div> int kk: int
?hdiv=iev@2200] := resres: vector<int>
?hdiv=iev@2225[kk: int
?hdiv=iev@2239]
kk: local-var<$1322,int> :=std/core/types/local-set: (v : local-var<$1322,int>, assigned : int) -> <local<$1322>,exn,div> () kk: int
?hdiv=iev@2272 +std/core/int/(+): (x : int, y : int) -> <local<$1322>,exn,div> int 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001
ii: local-var<$1322,int> :=std/core/types/local-set: (v : local-var<$1322,int>, assigned : int) -> <local<$1322>,div,exn> () ii: int
?hdiv=iev@2306 +std/core/int/(+): (x : int, y : int) -> <local<$1322>,div,exn> int kk: int
?hdiv=iev@2320
jj: local-var<$1322,int> :=std/core/types/local-set: (v : local-var<$1322,int>, assigned : int) -> <local<$1322>,div,exn> () jj: int
?hdiv=iev@2350 -std/core/int/(-): (x : int, y : int) -> <local<$1322>,div,exn> int kk: int
?hdiv=iev@2364
resres: vector<int>
?hdiv=iev@2384
}
fun naive-searchck/vector/naive-search: forall<a> (v : vector<a>, sub : vector<a>, start : int, @implicit/(==) : (a, a) -> bool) -> exn maybe<int>(vv: vector<$2425>: vectorstd/core/types/vector: V -> V<aa: V>, subsub: vector<$2425>: vectorstd/core/types/vector: V -> V<aa: V>, startstart: int: intstd/core/types/int: V, (@implicit/==)?(==): ($2425, $2425) -> bool: (aa: V, aa: V) -> boolstd/core/types/bool: V)result: -> exn maybe<int>: exnstd/core/exn/exn: (E, V) -> V maybestd/core/types/maybe: V -> V<intstd/core/types/int: V>
fun matchingmatching: (i : int, j : int) -> exn bool(ii: int: intstd/core/types/int: V, jj: int: intstd/core/types/int: V)result: -> exn bool: exnstd/core/exn/exn: (E, V) -> V boolstd/core/types/bool: V
if jj: int ==std/core/int/(==): (x : int, y : int) -> exn bool subsub: vector<$2425>.lengthstd/core/vector/length: (v : vector<$2425>) -> exn int then returnreturn: bool Truestd/core/types/True: bool
if !std/core/types/bool/(!): (b : bool) -> exn bool(vv: vector<$2425>[ii: int +std/core/int/(+): (x : int, y : int) -> exn int jj: int] ==?(==): ($2425, $2425) -> exn bool subsub: vector<$2425>[jj: int]) then returnreturn: bool Falsestd/core/types/False: bool
matchingmatching: (i : int, j : int) -> exn bool(ii: int, (jj: int +std/core/int/(+): (x : int, y : int) -> exn int 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001).pretend-decreasingstd/core/undiv/pretend-decreasing: (x : int) -> exn int)
fun looploop: (i : int) -> exn maybe<int>(ii: int: intstd/core/types/int: V)result: -> exn maybe<int>: exnstd/core/exn/exn: (E, V) -> V maybestd/core/types/maybe: V -> V<intstd/core/types/int: V>
if ii: int +std/core/int/(+): (x : int, y : int) -> exn int subsub: vector<$2425>.lengthstd/core/vector/length: (v : vector<$2425>) -> exn int >std/core/int/(>): (x : int, y : int) -> exn bool vv: vector<$2425>.lengthstd/core/vector/length: (v : vector<$2425>) -> exn int then returnreturn: maybe<int> Nothingstd/core/types/Nothing: forall<a> maybe<a>
if matchingmatching: (i : int, j : int) -> exn bool(ii: int, 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000) then returnreturn: maybe<int> Juststd/core/types/Just: forall<a> (value : a) -> maybe<a>(ii: int)std/core/types/Unit: ()
looploop: (i : int) -> exn maybe<int>((ii: int +std/core/int/(+): (x : int, y : int) -> exn int 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001).pretend-decreasingstd/core/undiv/pretend-decreasing: (x : int) -> exn int)
if startstart: int <std/core/int/(<): (x : int, y : int) -> exn bool 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000 then returnreturn: maybe<int> Nothingstd/core/types/Nothing: forall<a> maybe<a>
looploop: (i : int) -> exn maybe<int>(startstart: int)
pub fun searchck/vector/search: forall<a> (v : vector<a>, sub : vector<a>, start : ? int, @implicit/(==) : (a, a) -> bool) -> <div,exn> maybe<int>(vv: vector<$2897>: vectorstd/core/types/vector: V -> V<aa: V>, subsub: vector<$2897>: vectorstd/core/types/vector: V -> V<aa: V>, startstart: ? int: intstd/core/types/int: V = 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000, (@implicit/==)?(==): ($2897, $2897) -> bool: (aa: V, aa: V) -> boolstd/core/types/bool: V)result: -> <div,exn> maybe<int>: <std/core/types/total: Edivstd/core/types/div: X,exnstd/core/exn/exn: (E, V) -> V> maybestd/core/types/maybe: V -> V<intstd/core/types/int: V>
if subsub: vector<$2897>.lengthstd/core/vector/length: (v : vector<$2897>) -> <exn,div> int <std/core/int/(<): (x : int, y : int) -> <exn,div> bool 16literal: int
dec = 16
hex8 = 0x10
bit8 = 0b00010000 then returnreturn: maybe<int> naive-searchck/vector/naive-search: (v : vector<$2897>, sub : vector<$2897>, start : int, @implicit/(==) : ($2897, $2897) -> bool) -> <exn,div> maybe<int>
?(==)=?(==)(vv: vector<$2897>, subsub: vector<$2897>, startstart: int)std/core/types/Unit: ()
if startstart: int <std/core/int/(<): (x : int, y : int) -> <exn,div> bool 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000 ||std/core/types/(||): (x : bool, y : bool) -> <exn,div> bool startstart: int +std/core/int/(+): (x : int, y : int) -> <exn,div> int subsub: vector<$2897>.lengthstd/core/vector/length: (v : vector<$2897>) -> <exn,div> int >std/core/int/(>): (x : int, y : int) -> <exn,div> bool vv: vector<$2897>.lengthstd/core/vector/length: (v : vector<$2897>) -> <exn,div> int then returnreturn: maybe<int> Nothingstd/core/types/Nothing: forall<a> maybe<a>
val ww: vector<$2897> = vector-initstd/core/vector/vector-init: (n : int, f : (int) -> <exn,div> $2897) -> <exn,div> vector<$2897>(
subsub: vector<$2897>.lengthstd/core/vector/length: (v : vector<$2897>) -> <exn,div> int +std/core/int/(+): (x : int, y : int) -> <exn,div> int vv: vector<$2897>.lengthstd/core/vector/length: (v : vector<$2897>) -> <exn,div> int -std/core/int/(-): (x : int, y : int) -> <exn,div> int startstart: int,
fnfn: (i : int) -> <exn,div> $2897(ii: int) { if ii: int <std/core/int/(<): (x : int, y : int) -> <exn,div> bool subsub: vector<$2897>.lengthstd/core/vector/length: (v : vector<$2897>) -> <exn,div> int then subsub: vector<$2897>[ii: int] else vv: vector<$2897>[ii: int -std/core/int/(-): (x : int, y : int) -> <exn,div> int subsub: vector<$2897>.lengthstd/core/vector/length: (v : vector<$2897>) -> <exn,div> int +std/core/int/(+): (x : int, y : int) -> <exn,div> int startstart: int] }
)
val ll: vector<int> = z-algorithmck/vector/z-algorithm: (v : vector<$2897>, @implicit/(==) : ($2897, $2897) -> bool) -> <exn,div> vector<int>
?(==)=?(==)(ww: vector<$2897>)
fun looploop: (i : int) -> exn maybe<int>(ii: int: intstd/core/types/int: V)result: -> exn maybe<int>: exnstd/core/exn/exn: (E, V) -> V maybestd/core/types/maybe: V -> V<intstd/core/types/int: V>
if ii: int +std/core/int/(+): (x : int, y : int) -> exn int subsub: vector<$2897>.lengthstd/core/vector/length: (v : vector<$2897>) -> exn int >std/core/int/(>): (x : int, y : int) -> exn bool vv: vector<$2897>.lengthstd/core/vector/length: (v : vector<$2897>) -> exn int then returnreturn: maybe<int> Nothingstd/core/types/Nothing: forall<a> maybe<a>
val foundfound: bool = ll: vector<int>[subsub: vector<$2897>.lengthstd/core/vector/length: (v : vector<$2897>) -> exn int +std/core/int/(+): (x : int, y : int) -> exn int ii: int -std/core/int/(-): (x : int, y : int) -> exn int startstart: int] >=std/core/int/(>=): (x : int, y : int) -> exn bool subsub: vector<$2897>.lengthstd/core/vector/length: (v : vector<$2897>) -> exn int
if foundfound: bool then returnreturn: maybe<int> Juststd/core/types/Just: forall<a> (value : a) -> maybe<a>(ii: int)std/core/types/Unit: ()
looploop: (i : int) -> exn maybe<int>((ii: int +std/core/int/(+): (x : int, y : int) -> exn int 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001).pretend-decreasingstd/core/undiv/pretend-decreasing: (x : int) -> exn int)
looploop: (i : int) -> <exn,div> maybe<int>(startstart: int)
pub fun reverseck/vector/reverse: forall<a> (v : vector<a>) -> exn vector<a>(vv: vector<$3589>: vectorstd/core/types/vector: V -> V<aa: V>)result: -> exn vector<3649>: exnstd/core/exn/exn: (E, V) -> V vectorstd/core/types/vector: V -> V<aa: V>
vector-initstd/core/vector/vector-init: (n : int, f : (int) -> exn $3589) -> exn vector<$3589>(vv: vector<$3589>.lengthstd/core/vector/length: (v : vector<$3589>) -> exn int, fnfn: (i : int) -> exn $3589(ii: int) vv: vector<$3589>[vv: vector<$3589>.lengthstd/core/vector/length: (v : vector<$3589>) -> exn int -std/core/int/(-): (x : int, y : int) -> exn int 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001 -std/core/int/(-): (x : int, y : int) -> exn int ii: int])