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/eitherstd/core/either
pub import std/core/tuplestd/core/tuple
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: (_250) -> _251 _252,xx: _250)result: -> 1512 1513
ff: (_250) -> _251 _252(xx: _250)
pub fun ostd/core/o: forall<a,b,c,e> (f : (a) -> e b, g : (c) -> e a) -> ((x : c) -> e b)(ff: (_284) -> _276 _277,gg: (_275) -> _276 _284)result: -> total (x : 1570) -> 1571 1572
fnfn: (x : _275) -> _276 _277(xx: _275) ff: (_284) -> _276 _277(gg: (_275) -> _276 _284(xx: _275))
pub fun ignorestd/core/ignore: forall<a> (x : a) -> ()( xx: $309 : 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: $320 : aa: V )result: -> total (x : 331) -> 330 : totalstd/core/types/total: E (( x : bb: V ) -> astd/core/types/total: E)
fnfn: ($321) -> $320(_) defaultdefault: $320
pub fun same-typestd/core/same-type: forall<a> (x : a, y : a) -> a( xx: $339 : aa: V, yy: $339 : aa: V )result: -> total 345 : astd/core/types/total: E
xx: $339
pub fun whilestd/core/while: forall<e> (predicate : () -> <div|e> bool, action : () -> <div|e> ()) -> <div|e> ()( predicatepredicate: () -> <div|$350> bool : () -> <divstd/core/types/div: X|std/core/types/effect-extend: (X, E) -> Eee: E> boolstd/core/types/bool: V, actionaction: () -> <div|$350> () : () -> <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|366> () : <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|$350> bool() then
actionaction: () -> <div|$350> ()()
whilestd/core/while: (predicate : () -> <div|$350> bool, action : () -> <div|$350> ()) -> <div|$350> ()(predicatepredicate: () -> <div|$350> bool, actionaction: () -> <div|$350> ())std/core/types/Unit: ()
pub fun repeatstd/core/repeat: forall<e> (n : int, action : () -> e ()) -> e ()( ^nn: int : intstd/core/types/int: V, actionaction: () -> $887 () : () -> ee: E (std/core/types/unit: V)std/core/types/unit: V )result: -> 900 () : ee: E (std/core/types/unit: V)std/core/types/unit: V
forstd/core/for: (n : int, action : (int) -> $887 ()) -> $887 ()(nn: int) fnfn: (i : int) -> $887 ()(ii: int)
actionaction: () -> $887 ()()
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) -> $823 () : (intstd/core/types/int: V) -> ee: E (std/core/types/unit: V)std/core/types/unit: V )result: -> 862 () : ee: E (std/core/types/unit: V)std/core/types/unit: V
fun reprep: (i : int) -> $823 ()( ^ii: int : intstd/core/types/int: V )result: -> $823 ()
if ii: int <=std/core/int/(<=): (x : int, y : int) -> $823 bool endend: int then
actionaction: (int) -> $823 ()(ii: int)
reprep: (i : int) -> $823 ()(pretend-decreasingstd/core/undiv/pretend-decreasing: (x : int) -> $823 int(ii: int.incstd/core/int/inc: (i : int) -> $823 int))std/core/types/Unit: ()
reprep: (i : int) -> $823 ()(startstart: int)
pub fun forstd/core/for: forall<e> (n : int, action : (int) -> e ()) -> e ()( ^nn: int : intstd/core/types/int: V, actionaction: (int) -> $866 () : (intstd/core/types/int: V) -> ee: E (std/core/types/unit: V)std/core/types/unit: V )result: -> 881 () : ee: E (std/core/types/unit: V)std/core/types/unit: V
range/forstd/core/range/for: (start : int, end : int, action : (int) -> $866 ()) -> $866 ()(0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000, nn: int -std/core/int/(-): (x : int, y : int) -> $866 int 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001, actionaction: (int) -> $866 ())
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) -> $905 maybe<$904> : (intstd/core/types/int: V) -> ee: E maybestd/core/types/maybe: V -> V<aa: V> )result: -> 962 maybe<961> : ee: E maybestd/core/types/maybe: V -> V<aa: V>
fun reprep: (i : int) -> $905 maybe<$904>( ii: int : intstd/core/types/int: V )result: -> $905 maybe<$904>
if ii: int <=std/core/int/(<=): (x : int, y : int) -> $905 bool endend: int then
match actionaction: (int) -> $905 maybe<$904>(ii: int)
Nothingstd/core/types/Nothing: forall<a> maybe<a> -> reprep: (i : int) -> $905 maybe<$904>(pretend-decreasingstd/core/undiv/pretend-decreasing: (x : int) -> $905 int(ii: int.incstd/core/int/inc: (i : int) -> $905 int))
Juststd/core/types/Just: forall<a> (value : a) -> maybe<a>(xx: $904) -> Juststd/core/types/Just: forall<a> (value : a) -> maybe<a>(xx: $904)
else Nothingstd/core/types/Nothing: forall<a> maybe<a>
reprep: (i : int) -> $905 maybe<$904>(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) -> $970 maybe<$969> : (intstd/core/types/int: V) -> ee: E maybestd/core/types/maybe: V -> V<aa: V> )result: -> 991 maybe<990> : ee: E maybestd/core/types/maybe: V -> V<aa: V>
range/for-whilestd/core/range/for-while: (start : int, end : int, action : (int) -> $970 maybe<$969>) -> $970 maybe<$969>(0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000, nn: int -std/core/int/(-): (x : int, y : int) -> $970 int 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001, actionaction: (int) -> $970 maybe<$969>)
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: $537 : aa: V, ff: (int, $537) -> $538 $537 : (intstd/core/types/int: V,aa: V) -> ee: E aa: V )result: -> 589 588 : ee: E aa: V
if startstart: int >std/core/int/(>): (x : int, y : int) -> $538 bool endend: int then initinit: $537 else
val xx: $537 = ff: (int, $537) -> $538 $537(startstart: int,initinit: $537)
foldstd/core/range/fold: (start : int, end : int, init : $537, f : (int, $537) -> $538 $537) -> $538 $537(pretend-decreasingstd/core/undiv/pretend-decreasing: (x : int) -> $538 int(startstart: int.incstd/core/int/inc: (i : int) -> $538 int), endend: int, xx: $537, ff: (int, $537) -> $538 $537)
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: $514 : aa: V, ff: (int, $514) -> $515 $514 : (intstd/core/types/int: V,aa: V) -> ee: E aa: V )result: -> 536 535 : ee: E aa: V
range/foldstd/core/range/fold: (start : int, end : int, init : $514, f : (int, $514) -> $515 $514) -> $515 $514( 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000, uptoupto: int.decstd/core/int/dec: (i : int) -> $515 int, initinit: $514, ff: (int, $514) -> $515 $514 )
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: $629 : aa: V, ff: (int, $629) -> $630 maybe<$629> : (intstd/core/types/int: V,aa: V) -> ee: E maybestd/core/types/maybe: V -> V<aa: V> )result: -> 686 685 : ee: E aa: V
if startstart: int >std/core/int/(>): (x : int, y : int) -> $630 bool endend: int then initinit: $629 else
match ff: (int, $629) -> $630 maybe<$629>(startstart: int,initinit: $629)
Juststd/core/types/Just: forall<a> (value : a) -> maybe<a>(xx: $629) -> range/fold-whilestd/core/range/fold-while: (start : int, end : int, init : $629, f : (int, $629) -> $630 maybe<$629>) -> $630 $629(pretend-decreasingstd/core/undiv/pretend-decreasing: (x : int) -> $630 int(startstart: int.incstd/core/int/inc: (i : int) -> $630 int), endend: int, xx: $629, ff: (int, $629) -> $630 maybe<$629>)
Nothingstd/core/types/Nothing: forall<a> maybe<a> -> initinit: $629
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: $606 : aa: V, ff: (int, $606) -> $607 maybe<$606> : (intstd/core/types/int: V,aa: V) -> ee: E maybestd/core/types/maybe: V -> V<aa: V> )result: -> 628 627 : ee: E aa: V
range/fold-whilestd/core/range/fold-while: (start : int, end : int, init : $606, f : (int, $606) -> $607 maybe<$606>) -> $607 $606( 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000, nn: int.decstd/core/int/dec: (i : int) -> $607 int, initinit: $606, ff: (int, $606) -> $607 maybe<$606> )
pub fun (!=)std/core/(!=): forall<a> (x : a, y : a, @implicit/(==) : (a, a) -> bool) -> bool(xx: $410 : aa: V, yy: $410 : aa: V, (@implicit/==)?(==): ($410, $410) -> bool : (aa: V,aa: V) -> boolstd/core/types/bool: V )result: -> total bool : boolstd/core/types/bool: V
notstd/core/types/not: (b : bool) -> bool(xx: $410==?(==): ($410, $410) -> boolyy: $410)
pub fun cmp/(==)std/core/cmp/(==): forall<a> (x : a, y : a, @implicit/cmp : (a, a) -> order) -> bool(xx: $375 : aa: V, yy: $375 : aa: V, @implicit/cmp?cmp: ($375, $375) -> order : (aa: V,aa: V) -> orderstd/core/types/order: V )result: -> total bool : boolstd/core/types/bool: V
match cmp?cmp: ($375, $375) -> order(xx: $375,yy: $375)
Eqstd/core/types/Eq: order -> Truestd/core/types/True: bool
_ -> Falsestd/core/types/False: bool
pub fun (>)std/core/(>): forall<a> (x : a, y : a, @implicit/cmp : (a, a) -> order) -> bool(xx: $454 : aa: V, yy: $454 : aa: V, @implicit/cmp?cmp: ($454, $454) -> order : (aa: V,aa: V) -> orderstd/core/types/order: V )result: -> total bool : boolstd/core/types/bool: V
cmp?cmp: ($454, $454) -> order(xx: $454,yy: $454) ==std/core/order/(==): (x : order, y : order) -> bool Gtstd/core/types/Gt: order
pub fun (<)std/core/(<): forall<a> (x : a, y : a, @implicit/cmp : (a, a) -> order) -> bool(xx: $703 : aa: V, yy: $703 : aa: V, @implicit/cmp?cmp: ($703, $703) -> order : (aa: V,aa: V) -> orderstd/core/types/order: V )result: -> total bool : boolstd/core/types/bool: V
cmp?cmp: ($703, $703) -> order(xx: $703,yy: $703) ==std/core/order/(==): (x : order, y : order) -> bool Ltstd/core/types/Lt: order
pub fun (>=)std/core/(>=): forall<a> (x : a, y : a, @implicit/cmp : (a, a) -> order) -> bool(xx: $763 : aa: V, yy: $763 : aa: V, @implicit/cmp?cmp: ($763, $763) -> order : (aa: V,aa: V) -> orderstd/core/types/order: V )result: -> total bool : boolstd/core/types/bool: V
yy: $763 <std/core/(<): (x : $763, y : $763, @implicit/cmp : ($763, $763) -> order) -> bool
?cmp=?cmp xx: $763
pub fun (<=)std/core/(<=): forall<a> (x : a, y : a, @implicit/cmp : (a, a) -> order) -> bool(xx: $793 : aa: V, yy: $793 : aa: V, @implicit/cmp?cmp: ($793, $793) -> order : (aa: V,aa: V) -> orderstd/core/types/order: V )result: -> total bool : boolstd/core/types/bool: V
yy: $793 >std/core/(>): (x : $793, y : $793, @implicit/cmp : ($793, $793) -> order) -> bool
?cmp=?cmp xx: $793
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|$1031> () : () -> <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|1180> () : <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|$1031> ()) -> <console|$1031> ()( actionaction: () -> <exn,console|$1031> () )
final ctl throw-exnthrow-exn: (exn : exception) -> <console|$1031> ()( exnexn: exception : exceptionstd/core/exn/exception: V )
"uncaught exception: "literal: string
count= 20.printstd/core/console/string/print: (s : string) -> <console|$1031> ()
exnexn: exception.printlnstd/core/console/show/println: (x : exception, @implicit/show : (exception) -> string) -> <console|$1031> ()
?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>|_1201> ref<global,int>) -> ref<global,int>{ refstd/core/types/ref: (value : int) -> <alloc<global>|_1201> 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>|_1249> int) -> ndet int
val uu: int = !std/core/types/ref/(!): (ref : ref<global,int>) -> <read<global>,write<global>|_1249> intunique-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>|_1249> () uu: int+std/core/int/(+): (x : int, y : int) -> <write<global>,read<global>|_1249> 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> )