module types
pub infixr 30 (&&)
pub infixr 20 (||)
pub type intstd/core/types/int: V
pub value type float64std/core/types/float64: V
pub value type charstd/core/types/char: V
pub type stringstd/core/types/string: V
pub value type int8std/core/types/int8: V
pub value type int16std/core/types/int16: V
pub value type int32std/core/types/int32: V
pub value type int64std/core/types/int64: V
pub value type ssize_tstd/core/types/ssize_t: V
pub value type intptr_tstd/core/types/intptr_t: V
pub value type float32std/core/types/float32: V
pub reference type anystd/core/types/any: V
pub type reusestd/core/types/reuse: V
pub extern no-reusestd/core/types/no-reuse: () -> reuse() : reusestd/core/types/reuse: V
c inline "NULL"
js inline "null"
pub type <std/core/types/(<>): E> :: E
pub type <std/core/types/(<|>): (X, E) -> E|> :: (X,E) -> E
pub type vectorstd/core/types/vector: V -> V<aa: V>
pub type divstd/core/types/div: X :: X
pub type ndetstd/core/types/ndet: X :: X
pub type allocstd/core/types/alloc: H -> X :: H -> X
pub type readstd/core/types/read: H -> X :: H -> X
pub type writestd/core/types/write: H -> X :: H -> X
pub alias ststd/core/types/st: H -> E<hh: H> = <std/core/types/(<>): Ereadstd/core/types/read: H -> X<hh: H>, writestd/core/types/write: H -> X<hh: H>, allocstd/core/types/alloc: H -> X<hh: H>>
pub type globalstd/core/types/global: H :: H
pub type handledstd/core/types/handled: HX -> X :: HX -> X;
pub type handled1std/core/types/handled1: HX1 -> X :: HX1 -> X;
type voidstd/core/types/void: V
pub type boolstd/core/types/bool: V
con Falsestd/core/types/False: bool
con Truestd/core/types/True: bool
pub struct (std/core/types/(): V)std/core/types/(): V
pub struct (std/core/types/(,): (V, V) -> V,)std/core/types/(,): (V, V) -> V<aa: V,bb: V>(fstfst: 6:aa: V,sndsnd: 7:bb: V)
pub struct (std/core/types/(,,): (V, V, V) -> V,,)std/core/types/(,,): (V, V, V) -> V<aa: V,bb: V,cc: V>(fstfst: 13:aa: V,sndsnd: 14:bb: V,thdthd: 15:cc: V)
pub struct (std/core/types/(,,,): (V, V, V, V) -> V,,,)std/core/types/(,,,): (V, V, V, V) -> V<aa: V,bb: V,cc: V,dd: V>(fstfst: 22:aa: V,sndsnd: 23:bb: V,thdthd: 24:cc: V,field4field4: 25:dd: V)
pub struct (std/core/types/(,,,,): (V, V, V, V, V) -> V,,,,)std/core/types/(,,,,): (V, V, V, V, V) -> V<aa: V,bb: V,cc: V,dd: V,ee: V>(fstfst: 33:aa: V,sndsnd: 34:bb: V,thdthd: 35:cc: V,field4field4: 36:dd: V,field5field5: 37:ee: V)
pub type maybestd/core/types/maybe: V -> V<aa: V>
con Nothingstd/core/types/Nothing: forall<a> maybe<a>
con Juststd/core/types/Just: forall<a> (value : a) -> maybe<a>( valuevalue: 107 : aa: V )
pub type eitherstd/core/types/either: (V, V) -> V<aa: V,bb: V>
con Leftstd/core/types/Left: forall<a,b> (left : a) -> either<a,b>( leftleft: 68 : aa: V )
con Rightstd/core/types/Right: forall<a,b> (right : b) -> either<a,b>( rightright: 69 : bb: V )
pub type orderstd/core/types/order: V
Ltstd/core/types/Lt: order
Eqstd/core/types/Eq: order
Gtstd/core/types/Gt: order
pub value type boxstd/core/types/box: V -> V<aa: V>
con Boxstd/core/types/Box: forall<a> (unbox : a) -> box<a>( unboxunbox: 47 : aa: V )
pub reference type hboxstd/core/types/hbox: V -> V<aa: V>
con Hboxstd/core/types/Hbox: forall<a> (unhbox : a) -> hbox<a>( unhboxunhbox: 82 : aa: V )
pub fun hboxstd/core/types/hbox: forall<a> (x : a) -> hbox<a>( xx: $2421 : aa: V ) : hboxstd/core/types/hbox: V -> V<aa: V>
Hboxstd/core/types/Hbox: forall<a> (unhbox : a) -> hbox<a>(xx: $2421)
pub noinline fun keepstd/core/types/keep: forall<a> (x : a) -> a( xx: $2311 : aa: V ) : astd/core/types/(<>): E
xx: $2311
pub fun idstd/core/types/id: forall<a> (x : a) -> a(xx: $2304 : aa: V) : astd/core/types/(<>): E
xx: $2304
pub fun (&&)std/core/types/(&&): (x : bool, y : bool) -> bool( xx: bool : boolstd/core/types/bool: V, yy: bool : boolstd/core/types/bool: V) : boolstd/core/types/bool: V if xx: bool then yy: bool else Falsestd/core/types/False: bool
pub fun (||)std/core/types/(||): (x : bool, y : bool) -> bool( xx: bool : boolstd/core/types/bool: V, yy: bool : boolstd/core/types/bool: V) : boolstd/core/types/bool: V if xx: bool then Truestd/core/types/True: bool else yy: bool
pub fun (!)std/core/types/(!).1: (b : bool) -> bool( bb: bool : boolstd/core/types/bool: V ) : boolstd/core/types/bool: V
if bb: bool then Falsestd/core/types/False: bool else Truestd/core/types/True: bool
pub fun notstd/core/types/not: (b : bool) -> bool( bb: bool : boolstd/core/types/bool: V ) : boolstd/core/types/bool: V
if bb: bool then Falsestd/core/types/False: bool else Truestd/core/types/True: bool
pub inline extern zero32std/core/types/zero32: () -> int32() : int32std/core/types/int32: V
inline "0"
pub noinline extern ".open"<e1e1: E::E,e2e2: E::E,aa: V,bb: V>( xx: $2260 : aa: V ) : e2e2: E bb: V
inline "#1"
pub type hdivstd/core/types/hdiv: (H, V, E) -> P :: (H,V,E) -> P
pub type edivstd/core/types/ediv: (X, V, E) -> P :: (X,V,E) -> P
pub type refstd/core/types/ref: (H, V) -> V :: (H,V) -> V
pub inline extern refstd/core/types/ref: forall<a,h> (value : a) -> (alloc<h>) ref<h,a>( value : aa: V) : allocstd/core/types/alloc: H -> X<hh: H> refstd/core/types/ref: (H, V) -> V<hh: H,aa: V>
c "kk_ref_alloc"
cs inline "new Ref<##1,##2>(#1)"
js inline "{ value: #1 }"
pub inline extern setstd/core/types/set: forall<a,h> (ref : ref<h,a>, assigned : a) -> (write<h>) ()( ^ref : refstd/core/types/ref: (H, V) -> V<hh: H,aa: V>, assigned : aa: V) : <std/core/types/(<>): Ewritestd/core/types/write: H -> X<hh: H>> (std/core/types/(): V)std/core/types/(): V
c "kk_ref_set_borrow"
cs inline "#1.Set(#2)"
js inline "((#1).value = #2)"
pub inline extern (!)std/core/types/(!): forall<h,a,e> (ref : ref<h,a>) -> <read<h>|e> a with hdiv<h,a,e> : forall<hh: H,aa: V,ee: E> ( ref : refstd/core/types/ref: (H, V) -> V<hh: H,aa: V>) -> <readstd/core/types/read: H -> X<hh: H>|std/core/types/(<|>): (X, E) -> Eee: E> aa: V with(hdivstd/core/types/hdiv: (H, V, E) -> P<hh: H,aa: V,ee: E>)
c "kk_ref_get"
cs inline "#1.Value"
js inline "#1.value"
pub inline extern modifystd/core/types/modify: forall<h,a,b,e> (ref : ref<h,a>, f : forall<h1> (local-var<h1,a>) -> <local<h1>|e> b) -> <read<h>,write<h>|e> b with hdiv<h,a,e> : forall<hh: H,aa: V,bb: V,ee: E> ( ref : refstd/core/types/ref: (H, V) -> V<hh: H,aa: V>, f : forall<ss: H> local-varstd/core/types/local-var: (H, V) -> V<ss: H,aa: V> -> <localstd/core/types/local: H -> X<ss: H>|std/core/types/(<|>): (X, E) -> Eee: E> bb: V) -> <readstd/core/types/read: H -> X<hh: H>,writestd/core/types/write: H -> X<hh: H>|std/core/types/(<|>): (X, E) -> Eee: E> bb: V with(hdivstd/core/types/hdiv: (H, V, E) -> P<hh: H,aa: V,ee: E>)
c "kk_ref_modify"
js inline "((#2)(#1))"
pub extern runstd/core/types/run: forall<e,a> (action : forall<h> () -> <alloc<h>,read<h>,write<h>|e> a) -> e a : forall<ee: E,aa: V> ( action : forall<hh: H> () -> <allocstd/core/types/alloc: H -> X<hh: H>,readstd/core/types/read: H -> X<hh: H>,writestd/core/types/write: H -> X<hh: H> |std/core/types/(<|>): (X, E) -> E ee: E> aa: V ) -> ee: E aa: V
c inline "(kk_function_call(kk_box_t,(kk_function_t,kk_context_t*),#1,(#1,kk_context())))"
cs inline "Primitive.Run<##2>(#1)"
js inline "((#1)())"
pub type localstd/core/types/local: H -> X :: (H) -> X
pub type local-varstd/core/types/local-var: (H, V) -> V :: (H,V) -> V
pub inline extern local-newstd/core/types/local-new: forall<a,e,h> (value : a) -> <local<h>|e> local-var<h,a><a,s,e>(value:aa: V) : <localstd/core/types/local: H -> X<ss: H>|std/core/types/(<|>): (X, E) -> Eee: E> local-varstd/core/types/local-var: (H, V) -> V<ss: H,aa: V>
c "kk_ref_alloc"
cs inline "new Ref<##1,##2>(#1)"
js inline "{ value: #1 }"
pub inline extern local-setstd/core/types/local-set: forall<a,e,h> (v : local-var<h,a>, assigned : a) -> <local<h>|e> ()<a,s,e>( ^v: local-varstd/core/types/local-var: (H, V) -> V<ss: H,aa: V>, assigned: aa: V) : <localstd/core/types/local: H -> X<ss: H>|std/core/types/(<|>): (X, E) -> Eee: E> (std/core/types/(): V)std/core/types/(): V
c "kk_ref_set_borrow"
cs inline "#1.Set(#2)";
js inline "((#1).value = #2)"
pub inline extern local-getstd/core/types/local-get: forall<a,h,e> (v : local-var<h,a>) -> <local<h>|e> a with hdiv<h,a,e> : forall<aa: V,ss: H,ee: E> (v: local-varstd/core/types/local-var: (H, V) -> V<ss: H,aa: V>) -> <localstd/core/types/local: H -> X<ss: H>|std/core/types/(<|>): (X, E) -> Eee: E> aa: V with(hdivstd/core/types/hdiv: (H, V, E) -> P<ss: H,aa: V,ee: E>)
c "kk_ref_get"
cs inline "#1.Value";
js inline "((#1).value)";
inline extern unsafe-no-local-caststd/core/types/unsafe-no-local-cast: forall<a,e> (action : forall<h> () -> <local<h>|e> a) -> (() -> e a) : forall<aa: V,ee: E> ( action : forall<hh: H> () -> <localstd/core/types/local: H -> X<hh: H>|std/core/types/(<|>): (X, E) -> Eee: E> aa: V ) -> ((std/core/types/(<>): E) -> ee: E aa: V)
inline "#1"
pub inline fun local-scopestd/core/types/local-scope: forall<a,e> (action : forall<h> () -> <local<h>|e> a) -> e a<aa: V,ee: E>( actionaction: forall<h> () -> <local<h>|$2319> $2318 : forall<hh: H> () -> <localstd/core/types/local: H -> X<hh: H> |std/core/types/(<|>): (X, E) -> E ee: E> aa: V) : ee: E aa: V
unsafe-no-local-caststd/core/types/unsafe-no-local-cast: forall<a,e> (action : forall<h> () -> <local<h>|e> a) -> (() -> e a)(actionaction: forall<h> () -> <local<h>|$2319> $2318)()
pub inline extern byrefstd/core/types/byref: forall<a> (loc : a) -> a(loc : aa: V) : astd/core/types/(<>): E
inline "#1"
pub inline extern unsafe-decreasingstd/core/types/unsafe-decreasing: forall<a> (x : a) -> a( x : aa: V ) : astd/core/types/(<>): E
inline "#1"
inline extern unsafe-total-caststd/core/types/unsafe-total-cast: forall<e,a> (action : () -> e a) -> (() -> a) : forall<ee: E,aa: V> ( action : () -> ee: E aa: V ) -> ((std/core/types/(<>): E) -> astd/core/types/(<>): E)
inline "#1"
pub fun unsafe-totalstd/core/types/unsafe-total: forall<a,e> (action : () -> e a) -> a( actionaction: () -> $2398 $2397 : () -> ee: E aa: V ) : astd/core/types/(<>): E
unsafe-total-caststd/core/types/unsafe-total-cast: forall<e,a> (action : () -> e a) -> (() -> a)( actionaction: () -> $2398 $2397 )()
pub fun unsafe-no-ndetstd/core/types/unsafe-no-ndet: forall<a,e> (action : () -> <ndet|e> a) -> e a( actionaction: () -> <ndet|$2382> $2381 : () -> <ndetstd/core/types/ndet: X|std/core/types/(<|>): (X, E) -> Eee: E> aa: V ) : ee: E aa: V
unsafe-total-caststd/core/types/unsafe-total-cast: forall<e,a> (action : () -> e a) -> (() -> a)( actionaction: () -> <ndet|$2382> $2381 )()
pub fun unsafe-no-divstd/core/types/unsafe-no-div: forall<a,e> (action : () -> <div|e> a) -> e a( actionaction: () -> <div|$2366> $2365 : () -> <divstd/core/types/div: X|std/core/types/(<|>): (X, E) -> Eee: E> aa: V ) : ee: E aa: V
unsafe-total-caststd/core/types/unsafe-total-cast: forall<e,a> (action : () -> e a) -> (() -> a)( actionaction: () -> <div|$2366> $2365 )()
pub value type optionalstd/core/types/optional: V -> V<aa: V>
con Optionalstd/core/types/Optional: forall<a> (value : a) -> ?a( valuevalue: 112 : aa: V )
con Nonestd/core/types/None: forall<a> ?a
extern import
c header-end-file "types-ctail-inline.h"
js file "types-ctail-inline.js"
pub value type cfieldstd/core/types/cfield: V -> V<aa: V>
abstract value type ctailstd/core/types/ctail: V -> V<aa: V>
".CTail"( resres: 58 : aa: V, holehole: cfield<58> : cfieldstd/core/types/cfield: V -> V<aa: V> )