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<$70>: vectorstd/core/types/vector: V -> V<aa: V>, (@implicit/<)?(<): ($70, $70) -> <pure|$71> bool: (aa: V, aa: V) -> <purestd/core/pure: E|ee: E> boolstd/core/types/bool: V)result: -> <pure|1133> vector<1132>: <purestd/core/pure: E|ee: E> vectorstd/core/types/vector: V -> V<aa: V>
var resres: local-var<$81,vector<$70>> := vv: vector<$70>
var temptemp: local-var<$81,vector<$70>> := unsafe-vectorck/vector/unsafe-vector: (n : ssize_t) -> <div,exn,local<$81>|$71> vector<$70>((vv: vector<$70>.lengthstd/core/vector/length: (v : vector<$70>) -> <div,exn,local<$81>|$71> int /std/core/int/(/): (x : int, y : int) -> <div,exn,local<$81>|$71> int 2literal: int
dec = 2
hex8 = 0x02
bit8 = 0b00000010).ssize_tstd/core/int/ssize_t: (i : int) -> <div,exn,local<$81>|$71> ssize_t)
var pp: local-var<$81,int> := 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000
var l1l1: local-var<$81,int> := 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000
var l2l2: local-var<$81,int> := 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000
fun looploop: (l : int, r : int) -> <pure,local<$81>|$71> ()(ll: int: intstd/core/types/int: V, rr: int: intstd/core/types/int: V)result: -> <div,exn,local<$81>|$71> ()
if rr: int -std/core/int/(-): (x : int, y : int) -> <div,exn,local<$81>|$71> int ll: int <=std/core/int/(<=): (x : int, y : int) -> <div,exn,local<$81>|$71> 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<$81>|$71> int rr: int) /std/core/int/(/): (x : int, y : int) -> <div,exn,local<$81>|$71> int 2literal: int
dec = 2
hex8 = 0x02
bit8 = 0b00000010
looploop: (l : int, r : int) -> <div,exn,local<$81>|$71> ()(ll: int.pretend-decreasingstd/core/undiv/pretend-decreasing: (x : int) -> <div,exn,local<$81>|$71> int, mm: int)
looploop: (l : int, r : int) -> <div,exn,local<$81>|$71> ()(mm: int.pretend-decreasingstd/core/undiv/pretend-decreasing: (x : int) -> <div,exn,local<$81>|$71> int, rr: int)
forstd/core/range/for: (start : int, end : int, action : (int) -> <local<$81>,div,exn|$71> ()) -> <local<$81>,div,exn|$71> ()(ll: int, mm: int -std/core/int/(-): (x : int, y : int) -> <local<$81>,div,exn|$71> int 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001) fnfn: (i : int) -> <local<$81>,div,exn|$71> ()(ii: int)
temptemp: vector<$70>
?hdiv=iev@286.unsafe-assignck/vector/unsafe-assign: (v : vector<$70>, index : ssize_t, value : $70) -> <local<$81>,div,exn|$71> ()((ii: int -std/core/int/(-): (x : int, y : int) -> <local<$81>,div,exn|$71> int ll: int).ssize_tstd/core/int/ssize_t: (i : int) -> <local<$81>,div,exn|$71> ssize_t, resres: vector<$70>
?hdiv=iev@317.unsafe-idxck/vector/unsafe-idx: (v : vector<$70>, index : ssize_t) -> <local<$81>,div,exn|$71> $70(ii: int.ssize_tstd/core/int/ssize_t: (i : int) -> <local<$81>,div,exn|$71> ssize_t))
pp: local-var<$81,int> :=std/core/types/local-set: (v : local-var<$81,int>, assigned : int) -> <local<$81>,div,exn|$71> () ll: int
l1l1: local-var<$81,int> :=std/core/types/local-set: (v : local-var<$81,int>, assigned : int) -> <local<$81>,div,exn|$71> () ll: int
l2l2: local-var<$81,int> :=std/core/types/local-set: (v : local-var<$81,int>, assigned : int) -> <local<$81>,div,exn|$71> () mm: int
whilestd/core/while: (predicate : () -> <div,local<$81>,exn|$71> bool, action : () -> <div,local<$81>,exn|$71> ()) -> <div,local<$81>,exn|$71> () { l1l1: int
?hdiv=iev@386 <std/core/int/(<): (x : int, y : int) -> <local<$81>,div,exn|$71> bool mm: int &&std/core/types/(&&): (x : bool, y : bool) -> <local<$81>,div,exn|$71> bool l2l2: int
?hdiv=iev@434 <std/core/int/(<): (x : int, y : int) -> <local<$81>,div,exn|$71> bool rr: int }
val v1v1: $70 = temptemp: vector<$70>
?hdiv=iev@491.unsafe-idxck/vector/unsafe-idx: (v : vector<$70>, index : ssize_t) -> <local<$81>,div,exn|$71> $70((l1l1: int
?hdiv=iev@513 -std/core/int/(-): (x : int, y : int) -> <local<$81>,div,exn|$71> int ll: int).ssize_tstd/core/int/ssize_t: (i : int) -> <local<$81>,div,exn|$71> ssize_t)
val v2v2: $70 = resres: vector<$70>
?hdiv=iev@535.unsafe-idxck/vector/unsafe-idx: (v : vector<$70>, index : ssize_t) -> <local<$81>,div,exn|$71> $70(l2l2: int
?hdiv=iev@553.ssize_tstd/core/int/ssize_t: (i : int) -> <local<$81>,div,exn|$71> ssize_t)
if mask<local_1: H>{ v2v2: $70 <?(<): ($70, $70) -> <pure|$71> bool v1v1: $70 } then
resres: vector<$70>
?hdiv=iev@615.unsafe-assignck/vector/unsafe-assign: (v : vector<$70>, index : ssize_t, value : $70) -> <local<$81>,div,exn|$71> ()(pp: int
?hdiv=iev@633.ssize_tstd/core/int/ssize_t: (i : int) -> <local<$81>,div,exn|$71> ssize_t, resres: vector<$70>
?hdiv=iev@654.unsafe-idxck/vector/unsafe-idx: (v : vector<$70>, index : ssize_t) -> <local<$81>,div,exn|$71> $70(l2l2: int
?hdiv=iev@672.ssize_tstd/core/int/ssize_t: (i : int) -> <local<$81>,div,exn|$71> ssize_t))
l2l2: local-var<$81,int> :=std/core/types/local-set: (v : local-var<$81,int>, assigned : int) -> <local<$81>,div,exn|$71> () l2l2: int
?hdiv=iev@702 +std/core/int/(+): (x : int, y : int) -> <local<$81>,div,exn|$71> int 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001
else
resres: vector<$70>
?hdiv=iev@725.unsafe-assignck/vector/unsafe-assign: (v : vector<$70>, index : ssize_t, value : $70) -> <local<$81>,div,exn|$71> ()(pp: int
?hdiv=iev@743.ssize_tstd/core/int/ssize_t: (i : int) -> <local<$81>,div,exn|$71> ssize_t, temptemp: vector<$70>
?hdiv=iev@764.unsafe-idxck/vector/unsafe-idx: (v : vector<$70>, index : ssize_t) -> <local<$81>,div,exn|$71> $70((l1l1: int
?hdiv=iev@786 -std/core/int/(-): (x : int, y : int) -> <local<$81>,div,exn|$71> int ll: int).ssize_tstd/core/int/ssize_t: (i : int) -> <local<$81>,div,exn|$71> ssize_t))
l1l1: local-var<$81,int> :=std/core/types/local-set: (v : local-var<$81,int>, assigned : int) -> <local<$81>,div,exn|$71> () l1l1: int
?hdiv=iev@817 +std/core/int/(+): (x : int, y : int) -> <local<$81>,div,exn|$71> int 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001
pp: local-var<$81,int> :=std/core/types/local-set: (v : local-var<$81,int>, assigned : int) -> <local<$81>,div,exn|$71> () pp: int
?hdiv=iev@851 +std/core/int/(+): (x : int, y : int) -> <local<$81>,div,exn|$71> int 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001
whilestd/core/while: (predicate : () -> <div,local<$81>,exn|$71> bool, action : () -> <div,local<$81>,exn|$71> ()) -> <div,local<$81>,exn|$71> () { l1l1: int
?hdiv=iev@877 <std/core/int/(<): (x : int, y : int) -> <local<$81>,div,exn|$71> bool mm: int }
resres: vector<$70>
?hdiv=iev@934.unsafe-assignck/vector/unsafe-assign: (v : vector<$70>, index : ssize_t, value : $70) -> <local<$81>,div,exn|$71> ()(pp: int
?hdiv=iev@952.ssize_tstd/core/int/ssize_t: (i : int) -> <local<$81>,div,exn|$71> ssize_t, temptemp: vector<$70>
?hdiv=iev@973.unsafe-idxck/vector/unsafe-idx: (v : vector<$70>, index : ssize_t) -> <local<$81>,div,exn|$71> $70((l1l1: int
?hdiv=iev@995 -std/core/int/(-): (x : int, y : int) -> <local<$81>,div,exn|$71> int ll: int).ssize_tstd/core/int/ssize_t: (i : int) -> <local<$81>,div,exn|$71> ssize_t))
l1l1: local-var<$81,int> :=std/core/types/local-set: (v : local-var<$81,int>, assigned : int) -> <local<$81>,div,exn|$71> () l1l1: int
?hdiv=iev@1026 +std/core/int/(+): (x : int, y : int) -> <local<$81>,div,exn|$71> int 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001
pp: local-var<$81,int> :=std/core/types/local-set: (v : local-var<$81,int>, assigned : int) -> <local<$81>,div,exn|$71> () pp: int
?hdiv=iev@1057 +std/core/int/(+): (x : int, y : int) -> <local<$81>,div,exn|$71> int 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001
looploop: (l : int, r : int) -> <pure,local<$81>|$71> ()(0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000, vv: vector<$70>.lengthstd/core/vector/length: (v : vector<$70>) -> <div,exn,local<$81>|$71> int)
resres: vector<$70>
?hdiv=iev@1094
pub fun z-algorithmck/vector/z-algorithm: forall<a> (v : vector<a>, @implicit/(==) : (a, a) -> bool) -> exn vector<int>(vv: vector<$1140>: vectorstd/core/types/vector: V -> V<aa: V>, (@implicit/==)?(==): ($1140, $1140) -> 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<$1140>.lengthstd/core/vector/length: (v : vector<$1140>) -> 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<$1307,vector<int>> := vectorstd/core/vector/vector: (n : int, default : int) -> <div,exn,local<$1307>> vector<int>(sizesize: int, 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000)
resres: local-var<$1307,vector<int>>[0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000] := sizesize: int
var ii: local-var<$1307,int> := 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001
var jj: local-var<$1307,int> := 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000
var kk: local-var<$1307,int> := 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000
whilestd/core/while: (predicate : () -> <div,local<$1307>,exn> bool, action : () -> <div,local<$1307>,exn> ()) -> <div,local<$1307>,exn> () { ii: int
?hdiv=iev@1403 <std/core/int/(<): (x : int, y : int) -> <local<$1307>,div,exn> bool sizesize: int }
whilestd/core/while: (predicate : () -> <div,exn,local<$1307>> bool, action : () -> <div,exn,local<$1307>> ()) -> <div,exn,local<$1307>> () { ii: int
?hdiv=iev@1463 +std/core/int/(+): (x : int, y : int) -> <local<$1307>,exn,div> int jj: int
?hdiv=iev@1482 <std/core/int/(<): (x : int, y : int) -> <local<$1307>,exn,div> bool sizesize: int &&std/core/types/(&&): (x : bool, y : bool) -> <exn,local<$1307>,div> bool vv: vector<$1140>[jj: int
?hdiv=iev@1577] ==?(==): ($1140, $1140) -> <exn,local<$1307>,div> bool vv: vector<$1140>[ii: int
?hdiv=iev@1669 +std/core/int/(+): (x : int, y : int) -> <local<$1307>,exn,div> int jj: int
?hdiv=iev@1683] }
jj: local-var<$1307,int> :=std/core/types/local-set: (v : local-var<$1307,int>, assigned : int) -> <local<$1307>,div,exn> () jj: int
?hdiv=iev@1719 +std/core/int/(+): (x : int, y : int) -> <local<$1307>,div,exn> int 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001
resres: local-var<$1307,vector<int>>[ii: int
?hdiv=iev@1750] := jj: int
?hdiv=iev@1764
if jj: int
?hdiv=iev@1809 ==std/core/int/(==): (x : int, y : int) -> <local<$1307>,div,exn> bool 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000 then
ii: local-var<$1307,int> :=std/core/types/local-set: (v : local-var<$1307,int>, assigned : int) -> <local<$1307>,div,exn> () ii: int
?hdiv=iev@1931 +std/core/int/(+): (x : int, y : int) -> <local<$1307>,div,exn> int 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001
returnreturn: () (std/core/types/Unit: ())std/core/types/Unit: ()
kk: local-var<$1307,int> :=std/core/types/local-set: (v : local-var<$1307,int>, assigned : int) -> <local<$1307>,div,exn> () 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001
whilestd/core/while: (predicate : () -> <div,exn,local<$1307>> bool, action : () -> <div,exn,local<$1307>> ()) -> <div,exn,local<$1307>> () { ii: int
?hdiv=iev@1974 +std/core/int/(+): (x : int, y : int) -> <local<$1307>,exn,div> int kk: int
?hdiv=iev@1993 <std/core/int/(<): (x : int, y : int) -> <local<$1307>,exn,div> bool sizesize: int &&std/core/types/(&&): (x : bool, y : bool) -> <exn,local<$1307>,div> bool kk: int
?hdiv=iev@2041 +std/core/int/(+): (x : int, y : int) -> <exn,local<$1307>,div> int resres: vector<int>
?hdiv=iev@2071[kk: int
?hdiv=iev@2085] <std/core/int/(<): (x : int, y : int) -> <exn,local<$1307>,div> bool jj: int
?hdiv=iev@2129 }
resres: local-var<$1307,vector<int>>[ii: int
?hdiv=iev@2171 +std/core/int/(+): (x : int, y : int) -> <local<$1307>,exn,div> int kk: int
?hdiv=iev@2185] := resres: vector<int>
?hdiv=iev@2210[kk: int
?hdiv=iev@2224]
kk: local-var<$1307,int> :=std/core/types/local-set: (v : local-var<$1307,int>, assigned : int) -> <local<$1307>,exn,div> () kk: int
?hdiv=iev@2257 +std/core/int/(+): (x : int, y : int) -> <local<$1307>,exn,div> int 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001
ii: local-var<$1307,int> :=std/core/types/local-set: (v : local-var<$1307,int>, assigned : int) -> <local<$1307>,div,exn> () ii: int
?hdiv=iev@2291 +std/core/int/(+): (x : int, y : int) -> <local<$1307>,div,exn> int kk: int
?hdiv=iev@2305
jj: local-var<$1307,int> :=std/core/types/local-set: (v : local-var<$1307,int>, assigned : int) -> <local<$1307>,div,exn> () jj: int
?hdiv=iev@2335 -std/core/int/(-): (x : int, y : int) -> <local<$1307>,div,exn> int kk: int
?hdiv=iev@2349
resres: vector<int>
?hdiv=iev@2369
}
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<$2410>: vectorstd/core/types/vector: V -> V<aa: V>, subsub: vector<$2410>: vectorstd/core/types/vector: V -> V<aa: V>, startstart: int: intstd/core/types/int: V, (@implicit/==)?(==): ($2410, $2410) -> 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<$2410>.lengthstd/core/vector/length: (v : vector<$2410>) -> exn int then returnreturn: bool Truestd/core/types/True: bool
if !std/core/types/bool/(!): (b : bool) -> exn bool(vv: vector<$2410>[ii: int +std/core/int/(+): (x : int, y : int) -> exn int jj: int] ==?(==): ($2410, $2410) -> exn bool subsub: vector<$2410>[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<$2410>.lengthstd/core/vector/length: (v : vector<$2410>) -> exn int >std/core/int/(>): (x : int, y : int) -> exn bool vv: vector<$2410>.lengthstd/core/vector/length: (v : vector<$2410>) -> 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<$2882>: vectorstd/core/types/vector: V -> V<aa: V>, subsub: vector<$2882>: vectorstd/core/types/vector: V -> V<aa: V>, startstart: ? int: intstd/core/types/int: V = 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000, (@implicit/==)?(==): ($2882, $2882) -> 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<$2882>.lengthstd/core/vector/length: (v : vector<$2882>) -> <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<$2882>, sub : vector<$2882>, start : int, @implicit/(==) : ($2882, $2882) -> bool) -> <exn,div> maybe<int>
?(==)=?(==)(vv: vector<$2882>, subsub: vector<$2882>, 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<$2882>.lengthstd/core/vector/length: (v : vector<$2882>) -> <exn,div> int >std/core/int/(>): (x : int, y : int) -> <exn,div> bool vv: vector<$2882>.lengthstd/core/vector/length: (v : vector<$2882>) -> <exn,div> int then returnreturn: maybe<int> Nothingstd/core/types/Nothing: forall<a> maybe<a>
val ww: vector<$2882> = vector-initstd/core/vector/vector-init: (n : int, f : (int) -> <exn,div> $2882) -> <exn,div> vector<$2882>(
subsub: vector<$2882>.lengthstd/core/vector/length: (v : vector<$2882>) -> <exn,div> int +std/core/int/(+): (x : int, y : int) -> <exn,div> int vv: vector<$2882>.lengthstd/core/vector/length: (v : vector<$2882>) -> <exn,div> int -std/core/int/(-): (x : int, y : int) -> <exn,div> int startstart: int,
fnfn: (i : int) -> <exn,div> $2882(ii: int) { if ii: int <std/core/int/(<): (x : int, y : int) -> <exn,div> bool subsub: vector<$2882>.lengthstd/core/vector/length: (v : vector<$2882>) -> <exn,div> int then subsub: vector<$2882>[ii: int] else vv: vector<$2882>[ii: int -std/core/int/(-): (x : int, y : int) -> <exn,div> int subsub: vector<$2882>.lengthstd/core/vector/length: (v : vector<$2882>) -> <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<$2882>, @implicit/(==) : ($2882, $2882) -> bool) -> <exn,div> vector<int>
?(==)=?(==)(ww: vector<$2882>)
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<$2882>.lengthstd/core/vector/length: (v : vector<$2882>) -> exn int >std/core/int/(>): (x : int, y : int) -> exn bool vv: vector<$2882>.lengthstd/core/vector/length: (v : vector<$2882>) -> exn int then returnreturn: maybe<int> Nothingstd/core/types/Nothing: forall<a> maybe<a>
val foundfound: bool = ll: vector<int>[subsub: vector<$2882>.lengthstd/core/vector/length: (v : vector<$2882>) -> 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<$2882>.lengthstd/core/vector/length: (v : vector<$2882>) -> 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)