module std/corestd/core
pub import std/core/typesstd/core/types
import std/core/undivstd/core/undiv
import std/core/unsafestd/core/unsafe
pub import std/core/hndstd/core/hnd
pub import std/core/exnstd/core/exn
pub import std/core/boolstd/core/bool
pub import std/core/orderstd/core/order
pub import std/core/charstd/core/char
pub import std/core/intstd/core/int
pub import std/core/vectorstd/core/vector
pub import std/core/stringstd/core/string
pub import std/core/sslicestd/core/sslice
pub import std/core/liststd/core/list
pub import std/core/maybestd/core/maybe
pub import std/core/maybe2std/core/maybe2
pub import std/core/eitherstd/core/either
pub import std/core/tuplestd/core/tuple
pub import std/core/lazystd/core/lazy
pub import std/core/showstd/core/show
pub import std/core/debugstd/core/debug
pub import std/core/delayedstd/core/delayed
pub import std/core/consolestd/core/console
extern import
c file "core/inline/core"
cs file "core/inline/core.cs"
pub alias purestd/core/pure: E = <std/core/types/total: Eexnstd/core/exn/exn: (E, V) -> V,divstd/core/types/div: X>
pub type global-scopestd/core/global-scope: S :: S
pub type netstd/core/net: X :: X
pub type fsysstd/core/fsys: X :: X
pub type uistd/core/ui: X :: X
pub type blockingstd/core/blocking: X :: X
pub alias io-totalstd/core/io-total: E = <std/core/types/total: Endetstd/core/types/ndet: X,consolestd/core/console/console: X,netstd/core/net: X,fsysstd/core/fsys: X,uistd/core/ui: X,ststd/core/types/st: H -> E<globalstd/core/types/global: H>>
pub alias io-noexnstd/core/io-noexn: E = <std/core/types/total: Edivstd/core/types/div: X,io-totalstd/core/io-total: E>
pub alias iostd/core/io: E = <std/core/types/total: Eexnstd/core/exn/exn: (E, V) -> V,io-noexnstd/core/io-noexn: E>
pub type nmdstd/core/nmd: X :: X
pub type scopestd/core/scope: S -> X :: S -> X
pub fun applystd/core/apply: forall<a,b,e> (f : (a) -> e b, x : a) -> e b(ff: (_189) -> _190 _191,xx: _189)result: -> 203 202
ff: (_189) -> _190 _191(xx: _189)
pub fun ostd/core/o: forall<a,b,c,e> (f : (a) -> e b, g : (c) -> e a) -> ((x : c) -> e b)(ff: (_227) -> _219 _220,gg: (_218) -> _219 _227)result: -> total (x : 243) -> 244 242
fnfn: (x : _218) -> _219 _220(xx: _218) ff: (_227) -> _219 _220(gg: (_218) -> _219 _227(xx: _218))
pub fun ignorestd/core/ignore: forall<a> (x : a) -> ()( xx: $259 : aa: V )result: -> total () : (std/core/types/unit: V)std/core/types/unit: V
(std/core/types/Unit: ())std/core/types/Unit: ()
pub fun conststd/core/const: forall<a,b> (default : a) -> ((x : b) -> a)( defaultdefault: $272 : aa: V )result: -> total (x : 287) -> 286 : totalstd/core/types/total: E (( x : bb: V ) -> astd/core/types/total: E)
fnfn: ($273) -> $272(_) defaultdefault: $272
pub fun same-typestd/core/same-type: forall<a> (x : a, y : a) -> a( xx: $295 : aa: V, yy: $295 : aa: V )result: -> total 303 : astd/core/types/total: E
xx: $295
pub fun whilestd/core/while: forall<e> (predicate : () -> <div|e> bool, action : () -> <div|e> ()) -> <div|e> ()( predicatepredicate: () -> <div|$308> bool : () -> <divstd/core/types/div: X|std/core/types/effect-extend: (X, E) -> Eee: E> boolstd/core/types/bool: V, actionaction: () -> <div|$308> () : () -> <divstd/core/types/div: X|std/core/types/effect-extend: (X, E) -> Eee: E> (std/core/types/unit: V)std/core/types/unit: V )result: -> <div|329> () : <divstd/core/types/div: X|std/core/types/effect-extend: (X, E) -> Eee: E> (std/core/types/unit: V)std/core/types/unit: V
if predicatepredicate: () -> <div|$308> bool() then
actionaction: () -> <div|$308> ()()
whilestd/core/while: (predicate : () -> <div|$308> bool, action : () -> <div|$308> ()) -> <div|$308> ()(predicatepredicate: () -> <div|$308> bool, actionaction: () -> <div|$308> ())std/core/types/Unit: ()
pub fun repeatstd/core/repeat: forall<e> (n : int, action : () -> e ()) -> e ()( ^nn: int : intstd/core/types/int: V, actionaction: () -> $1355 () : () -> ee: E (std/core/types/unit: V)std/core/types/unit: V )result: -> 1371 () : ee: E (std/core/types/unit: V)std/core/types/unit: V
forstd/core/for: (n : int, action : (int) -> $1355 ()) -> $1355 ()(nn: int) fnfn: (i : int) -> $1355 ()(ii: int)
actionaction: () -> $1355 ()()
pub fun range/forstd/core/range/for: forall<e> (start : int, end : int, action : (int) -> e ()) -> e ()( ^startstart: int: intstd/core/types/int: V, endend: int : intstd/core/types/int: V, actionaction: (int) -> $1257 () : (intstd/core/types/int: V) -> ee: E (std/core/types/unit: V)std/core/types/unit: V )result: -> 1326 () : ee: E (std/core/types/unit: V)std/core/types/unit: V
fun reprep: (i : int) -> $1257 ()( ^ii: int : intstd/core/types/int: V )result: -> $1257 ()
if ii: int <=std/core/int/(<=): (x : int, y : int) -> $1257 bool endend: int then
actionaction: (int) -> $1257 ()(ii: int)
reprep: (i : int) -> $1257 ()(pretend-decreasingstd/core/undiv/pretend-decreasing: (x : int) -> $1257 int(ii: int.incstd/core/int/inc: (i : int) -> $1257 int))std/core/types/Unit: ()
reprep: (i : int) -> $1257 ()(startstart: int)
pub fun forstd/core/for: forall<e> (n : int, action : (int) -> e ()) -> e ()( ^nn: int : intstd/core/types/int: V, actionaction: (int) -> $1330 () : (intstd/core/types/int: V) -> ee: E (std/core/types/unit: V)std/core/types/unit: V )result: -> 1349 () : ee: E (std/core/types/unit: V)std/core/types/unit: V
range/forstd/core/range/for: (start : int, end : int, action : (int) -> $1330 ()) -> $1330 ()(0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000, nn: int -std/core/int/(-): (x : int, y : int) -> $1330 int 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001, actionaction: (int) -> $1330 ())
pub fun range/for-whilestd/core/range/for-while: forall<a,e> (start : int, end : int, action : (int) -> e maybe<a>) -> e maybe<a>( startstart: int: intstd/core/types/int: V, endend: int : intstd/core/types/int: V, actionaction: (int) -> $1376 maybe<$1375> : (intstd/core/types/int: V) -> ee: E maybestd/core/types/maybe: V -> V<aa: V> )result: -> 1469 maybe<1468> : ee: E maybestd/core/types/maybe: V -> V<aa: V>
fun reprep: (i : int) -> $1376 maybe<$1375>( ii: int : intstd/core/types/int: V )result: -> $1376 maybe<$1375>
if ii: int <=std/core/int/(<=): (x : int, y : int) -> $1376 bool endend: int then
match actionaction: (int) -> $1376 maybe<$1375>(ii: int)
Nothingstd/core/types/Nothing: forall<a> maybe<a> -> reprep: (i : int) -> $1376 maybe<$1375>(pretend-decreasingstd/core/undiv/pretend-decreasing: (x : int) -> $1376 int(ii: int.incstd/core/int/inc: (i : int) -> $1376 int))
Juststd/core/types/Just: forall<a> (value : a) -> maybe<a>(xx: $1375) -> Juststd/core/types/Just: forall<a> (value : a) -> maybe<a>(xx: $1375)
else Nothingstd/core/types/Nothing: forall<a> maybe<a>
reprep: (i : int) -> $1376 maybe<$1375>(startstart: int)
pub fun for-whilestd/core/for-while: forall<a,e> (n : int, action : (int) -> e maybe<a>) -> e maybe<a>( nn: int : intstd/core/types/int: V, actionaction: (int) -> $1477 maybe<$1476> : (intstd/core/types/int: V) -> ee: E maybestd/core/types/maybe: V -> V<aa: V> )result: -> 1504 maybe<1503> : ee: E maybestd/core/types/maybe: V -> V<aa: V>
range/for-whilestd/core/range/for-while: (start : int, end : int, action : (int) -> $1477 maybe<$1476>) -> $1477 maybe<$1476>(0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000, nn: int -std/core/int/(-): (x : int, y : int) -> $1477 int 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001, actionaction: (int) -> $1477 maybe<$1476>)
pub fun range/foldstd/core/range/fold: forall<a,e> (start : int, end : int, init : a, f : (int, a) -> e a) -> e a( startstart: int : intstd/core/types/int: V, endend: int : intstd/core/types/int: V, initinit: $729 : aa: V, ff: (int, $729) -> $730 $729 : (intstd/core/types/int: V,aa: V) -> ee: E aa: V )result: -> 812 811 : ee: E aa: V
if startstart: int >std/core/int/(>): (x : int, y : int) -> $730 bool endend: int then initinit: $729 else
val xx: $729 = ff: (int, $729) -> $730 $729(startstart: int,initinit: $729)
foldstd/core/range/fold: (start : int, end : int, init : $729, f : (int, $729) -> $730 $729) -> $730 $729(pretend-decreasingstd/core/undiv/pretend-decreasing: (x : int) -> $730 int(startstart: int.incstd/core/int/inc: (i : int) -> $730 int), endend: int, xx: $729, ff: (int, $729) -> $730 $729)
pub fun foldstd/core/fold: forall<a,e> (upto : int, init : a, f : (int, a) -> e a) -> e a( uptoupto: int : intstd/core/types/int: V, initinit: $700 : aa: V, ff: (int, $700) -> $701 $700 : (intstd/core/types/int: V,aa: V) -> ee: E aa: V )result: -> 728 727 : ee: E aa: V
range/foldstd/core/range/fold: (start : int, end : int, init : $700, f : (int, $700) -> $701 $700) -> $701 $700( 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000, uptoupto: int.decstd/core/int/dec: (i : int) -> $701 int, initinit: $700, ff: (int, $700) -> $701 $700 )
pub fun range/fold-whilestd/core/range/fold-while: forall<a,e> (start : int, end : int, init : a, f : (int, a) -> e maybe<a>) -> e a( startstart: int : intstd/core/types/int: V, endend: int : intstd/core/types/int: V, initinit: $858 : aa: V, ff: (int, $858) -> $859 maybe<$858> : (intstd/core/types/int: V,aa: V) -> ee: E maybestd/core/types/maybe: V -> V<aa: V> )result: -> 949 948 : ee: E aa: V
if startstart: int >std/core/int/(>): (x : int, y : int) -> $859 bool endend: int then initinit: $858 else
match ff: (int, $858) -> $859 maybe<$858>(startstart: int,initinit: $858)
Juststd/core/types/Just: forall<a> (value : a) -> maybe<a>(xx: $858) -> range/fold-whilestd/core/range/fold-while: (start : int, end : int, init : $858, f : (int, $858) -> $859 maybe<$858>) -> $859 $858(pretend-decreasingstd/core/undiv/pretend-decreasing: (x : int) -> $859 int(startstart: int.incstd/core/int/inc: (i : int) -> $859 int), endend: int, xx: $858, ff: (int, $858) -> $859 maybe<$858>)
Nothingstd/core/types/Nothing: forall<a> maybe<a> -> initinit: $858
pub fun fold-whilestd/core/fold-while: forall<a,e> (n : int, init : a, f : (int, a) -> e maybe<a>) -> e a( nn: int : intstd/core/types/int: V, initinit: $829 : aa: V, ff: (int, $829) -> $830 maybe<$829> : (intstd/core/types/int: V,aa: V) -> ee: E maybestd/core/types/maybe: V -> V<aa: V> )result: -> 857 856 : ee: E aa: V
range/fold-whilestd/core/range/fold-while: (start : int, end : int, init : $829, f : (int, $829) -> $830 maybe<$829>) -> $830 $829( 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000, nn: int.decstd/core/int/dec: (i : int) -> $830 int, initinit: $829, ff: (int, $829) -> $830 maybe<$829> )
pub fun default/(!=)std/core/default/(!=): forall<a,e> (x : a, y : a, @implicit/(==) : (a, a) -> e bool) -> e bool(xx: $418 : aa: V, yy: $418 : aa: V, (@implicit/==)?(==): ($418, $418) -> $419 bool : (aa: V,aa: V) -> ee: E boolstd/core/types/bool: V )result: -> 526 bool : ee: E boolstd/core/types/bool: V
notstd/core/types/not: (b : bool) -> $419 bool(xx: $418==?(==): ($418, $418) -> $419 boolyy: $418)
pub fun default/cmp/(==)std/core/default/cmp/(==): forall<a,e> (x : a, y : a, @implicit/cmp : (a, a) -> e order) -> e bool(xx: $339 : aa: V, yy: $339 : aa: V, @implicit/cmp?cmp: ($339, $339) -> $340 order : (aa: V,aa: V) -> ee: E orderstd/core/types/order: V )result: -> 411 bool : ee: E boolstd/core/types/bool: V
match cmp?cmp: ($339, $339) -> $340 order(xx: $339,yy: $339)
Eqstd/core/types/Eq: order -> Truestd/core/types/True: bool
_ -> Falsestd/core/types/False: bool
pub fun default/cmp/(>)std/core/default/cmp/(>): forall<a,e> (x : a, y : a, @implicit/cmp : (a, a) -> e order) -> e bool(xx: $533 : aa: V, yy: $533 : aa: V, @implicit/cmp?cmp: ($533, $533) -> $534 order : (aa: V,aa: V) -> ee: E orderstd/core/types/order: V )result: -> 693 bool : ee: E boolstd/core/types/bool: V
cmp?cmp: ($533, $533) -> $534 order(xx: $533,yy: $533) ==std/core/order/(==): (x : order, y : order) -> $534 bool Gtstd/core/types/Gt: order
pub fun default/cmp/(<)std/core/default/cmp/(<): forall<a,e> (x : a, y : a, @implicit/cmp : (a, a) -> e order) -> e bool(xx: $966 : aa: V, yy: $966 : aa: V, @implicit/cmp?cmp: ($966, $966) -> $967 order : (aa: V,aa: V) -> ee: E orderstd/core/types/order: V )result: -> 1126 bool : ee: E boolstd/core/types/bool: V
cmp?cmp: ($966, $966) -> $967 order(xx: $966,yy: $966) ==std/core/order/(==): (x : order, y : order) -> $967 bool Ltstd/core/types/Lt: order
pub fun default/cmp/(>=)std/core/default/cmp/(>=): forall<a,e> (x : a, y : a, @implicit/cmp : (a, a) -> e order) -> e bool(xx: $1133 : aa: V, yy: $1133 : aa: V, @implicit/cmp?cmp: ($1133, $1133) -> $1134 order : (aa: V,aa: V) -> ee: E orderstd/core/types/order: V )result: -> 1188 bool : ee: E boolstd/core/types/bool: V
notstd/core/types/not: (b : bool) -> $1134 bool(xx: $1133 <std/core/default/cmp/(<): (x : $1133, y : $1133, @implicit/cmp : ($1133, $1133) -> $1134 order) -> $1134 bool
?cmp=?cmp yy: $1133)
pub fun default/cmp/(<=)std/core/default/cmp/(<=): forall<a,e> (x : a, y : a, @implicit/cmp : (a, a) -> e order) -> e bool(xx: $1195 : aa: V, yy: $1195 : aa: V, @implicit/cmp?cmp: ($1195, $1195) -> $1196 order : (aa: V,aa: V) -> ee: E orderstd/core/types/order: V )result: -> 1250 bool : ee: E boolstd/core/types/bool: V
notstd/core/types/not: (b : bool) -> $1196 bool(xx: $1195 >std/core/default/cmp/(>): (x : $1195, y : $1195, @implicit/cmp : ($1195, $1195) -> $1196 order) -> $1196 bool
?cmp=?cmp yy: $1195)
pub extern main-consolestd/core/main-console: forall<a,e> (main : () -> e a) -> e a : forall<aa: V,ee: E> ( main : () -> ee: E aa: V ) -> ee: E aa: V
c "kk_main_console"
cs inline "Primitive.MainConsole<##1>(#1)"
js inline "(#1)()"
pub extern hoststd/core/host: () -> ndet string() : ndetstd/core/types/ndet: X stringstd/core/types/string: V
c "kk_get_host"
cs inline "\"dotnet\""
js inline "$std_core_console._host"
pub fun @default-exn(actionaction: () -> <exn,console|$1550> () : () -> <exnstd/core/exn/exn: (E, V) -> V,consolestd/core/console/console: X|std/core/types/effect-extend: (X, E) -> Eee: E> (std/core/types/unit: V)std/core/types/unit: V )result: -> <console|1738> () : <consolestd/core/console/console: X|std/core/types/effect-extend: (X, E) -> Eee: E> (std/core/types/unit: V)std/core/types/unit: V
handlehandler: (() -> <exn,console|$1550> ()) -> <console|$1550> ()( actionaction: () -> <exn,console|$1550> () )
final ctl throw-exnthrow-exn: (exn : exception) -> <console|$1550> ()( exnexn: exception : exceptionstd/core/exn/exception: V )
"uncaught exception: "literal: string
count= 20.printstd/core/console/string/print: (s : string) -> <console|$1550> ()
exnexn: exception.printlnstd/core/console/default/show/println: (x : exception, @implicit/show : (exception) -> <console|$1550> string) -> <console|$1550> ()
?show=show
noinline val unique-countstd/core/unique-count: ref<global,int> : refstd/core/types/ref: (H, V) -> V<globalstd/core/types/global: H,intstd/core/types/int: V> = unsafe-totalstd/core/unsafe/unsafe-total: (action : () -> <alloc<global>|_1760> ref<global,int>) -> ref<global,int>{ refstd/core/types/ref: (value : int) -> <alloc<global>|_1760> ref<global,int>(0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000) }
pub fun uniquestd/core/unique: () -> ndet int()result: -> ndet int : ndetstd/core/types/ndet: X intstd/core/types/int: V
unsafe-totalstd/core/unsafe/unsafe-total: (action : () -> <read<global>,write<global>|_1812> int) -> ndet int
val uu: int = !std/core/types/ref/(!): (ref : ref<global,int>, @implicit/hdiv : hdiv<global,int,<write<global>|_1812>>) -> <read<global>,write<global>|_1812> int
?hdiv=iev@1782unique-countstd/core/unique-count: ref<global,int>
unique-countstd/core/unique-count: ref<global,int> :=std/core/types/set: (ref : ref<global,int>, assigned : int) -> <write<global>,read<global>|_1812> () uu: int+std/core/int/(+): (x : int, y : int) -> <write<global>,read<global>|_1812> int1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001
uu: int
pub co type streamstd/core/stream: V -> V<aa: V>
con Nextstd/core/Next: forall<a> (head : a, tail : stream<a>) -> stream<a>(headstd/core/stream/head: forall<a> (stream : stream<a>) -> a:aa: V, tailstd/core/stream/tail: forall<a> (stream : stream<a>) -> stream<a>: streamstd/core/stream: V -> V<aa: V> )