(use goo/boot)
(use goo/macros)
(use goo/mag)
(use goo/types)
(use goo/math)
(use goo/runtime)
(use goo/cols)
(use goo/packer)
(use goo/io/write)
(use goo/io/read)
(use eval/syntax)
(use goo/io/port)
(export
IF SEQ SET FUN LET DEF LOC ESC FIN DV DM DG DP DC MACRO-EXPAND
SUP APP-SUP QUOTE
CT CT-ALSO DS USE USE/MANGLE USE/EXPORT USE/INCLUDE USE/LIBRARY EXPORT
DDV
DF TRY REP MIF AND OR CASE CASE-BY COND MATCH UNLESS WHEN ASSERT
FOR WHILE UNTIL OPF PUSHF POPF INCF DECF SWAPF ROTF
OP PUB EXPORTED
PACKING-WITH PACKING-IN PACKING PACK-IN PACK PACKED
<PACKER> PACKER PACKER-FAB PACKER-ADD PACKER-RES
RENEW
quasiquote
<any> as new object-class clone
<type>
<class> class-parents class-children class-direct-props
class-ancestors class-props
class-name
<singleton> type-object
<subclass> type-class
<union> union-elts
<product> product-elts
== = < ~= ~== > <= >= min max subtype? isa? may-isa?
nul
<log> not
<chr> lower? upper? to-lower to-upper alpha?
digit? to-digit eof-object?
<num> + 1+ - 1- * / floor ceil round trunc floor/ ceil/ round/
trunc/ mod mod+ modincf rem div pos? zero? neg? neg abs *print-base*
num-to-str num-to-str-base str-to-num
log logn pow sqrt isqrt sin cos tan asin acos atan atan2 sinh cosh tanh $pi $e
<int> #| ^ & ~ bit? even? odd? << >> >>> $max-int $min-int
<flo> flo-bits
<loc> loc-val loc-val-setter address-of
<col> <col.> len elt elt-or elts low-elt dup col-res col-res-type
empty? empty elt-default elt-type key-type key-test fab fabs fill any?
all? fold fold+ find find-or del zap do do2 map map2 do-keyed
map-keyed mem? keys items zap find find-or
<col!> del! add! zap! fill! into
elt-setter low-elt-setter len-setter len/fill-setter
<enum> enum fin? nxt now now-setter now-key
<map> col <tab> tab-growth-factor tab-growth-threshold tab-shrink-threshold
tab-hash id-hash <str-tab> case-insensitive-string-hash case-insensitive-string-equal
<set>
<seq> <seq.> add 1st 2nd 3rd last pos rev cat cat2 sub push pop
pick reject ins del-vals del-dups finds sort sort-by
prefix? suffix? repeat split join
<seq!> add! rev! cat! sub-setter push! pop! del-vals! del-dups! sort! sort-by!
<tup> tup
<lst> <list> head head-setter tail tail-setter lst list pair nil push! pop!
<opts>
<flat> <str> str to-str <vec> vec
low-elt low-elt-setter
<range> range range-by from below
<step> first-then
<each> each
<zip> zip unzip
<cycle> cycle
<sym> as cat-sym gensym fab-setter-name var-name var-type
<prop> prop-owner prop-getter prop-setter prop-type prop-init
prop-value prop-value-setter prop-bound? find-getter find-setter add-prop
<fun> fun-name fun-names fun-specs fun-nary? fun-arity fun-val
identity compose curry rcurry always app
<gen> fun-mets gen-add-met ord-app-mets
<met> met-app?
<condition> default-handler sig <simple-condition> condition-message
condition-arguments <serious-condition> <error> error <simple-error>
<handler> handler-function fab-handler handler-matches?
<restart>
<port> <in-port> get gets peek ready? port-line
in out open close with-port
<out-port> newline force-out put puts
<file-port> <file-in-port>
<file-out-port>
<str-port> port-contents <str-in-port> port-index
<str-out-port>
read read-from-string
write emit writeln write-to-string msg post say
app-filename app-args
match-atom match-empty-list match-unquote match-sublist
sexpr-signature-parameters
%pair %next-methods %define-method %prop %prop-unbound-error
<handler-info>
$default-handler-info
<simple-handler-info>
handler-info-message
handler-info-arguments
napp
need-implementation bound? dlet t+ t= t< t? t*
describe-condition
)
(export
any2?
all2?)
(export
fab-class
macro-error
%prop
)