prelude: :gerbil/core
package: gerbil/compiler
namespace: gxc

(%#begin (%#import
          :gerbil/core/expander
          :gerbil/expander
          :gerbil/compiler/base
          :gerbil/compiler/method
          :gerbil/compiler/compile
          :gerbil/compiler/optimize-base
          :gerbil/compiler/optimize-xform)
         (%#export #t)
         (%#define-runtime ::optimize-annotated::t gxc#::optimize-annotated::t)
         (%#define-runtime ::optimize-annotated? gxc#::optimize-annotated?)
         (%#define-runtime
          make-::optimize-annotated
          gxc#make-::optimize-annotated)
         (%#begin (%#begin-syntax
                   (%#call (%#ref load-module)
                           (%#quote "gerbil/compiler/optimize-ann~1")))
                  (%#define-syntax
                   ::optimize-annotated
                   |gxc[:0:]#::optimize-annotated|))
         (%#define-runtime
          ::optimize-annotated-bind-methods!
          gxc#::optimize-annotated-bind-methods!)
         (%#define-runtime
          apply-optimize-annotated
          gxc#apply-optimize-annotated)
         (%#define-runtime
          ::generate-runtime-repr::t
          gxc#::generate-runtime-repr::t)
         (%#define-runtime
          ::generate-runtime-repr?
          gxc#::generate-runtime-repr?)
         (%#define-runtime
          make-::generate-runtime-repr
          gxc#make-::generate-runtime-repr)
         (%#define-syntax
          ::generate-runtime-repr
          |gxc[:0:]#::generate-runtime-repr|)
         (%#define-runtime
          ::generate-runtime-repr-bind-methods!
          gxc#::generate-runtime-repr-bind-methods!)
         (%#define-runtime
          apply-generate-runtime-repr
          gxc#apply-generate-runtime-repr)
         (%#define-runtime ::push-match-vars::t gxc#::push-match-vars::t)
         (%#define-runtime ::push-match-vars? gxc#::push-match-vars?)
         (%#define-runtime make-::push-match-vars gxc#make-::push-match-vars)
         (%#define-runtime ::push-match-vars-vars gxc#::push-match-vars-vars)
         (%#define-runtime ::push-match-vars-K gxc#::push-match-vars-K)
         (%#define-runtime
          ::push-match-vars-vars-set!
          gxc#::push-match-vars-vars-set!)
         (%#define-runtime
          ::push-match-vars-K-set!
          gxc#::push-match-vars-K-set!)
         (%#define-runtime &::push-match-vars-vars gxc#&::push-match-vars-vars)
         (%#define-runtime &::push-match-vars-K gxc#&::push-match-vars-K)
         (%#define-runtime
          &::push-match-vars-vars-set!
          gxc#&::push-match-vars-vars-set!)
         (%#define-runtime
          &::push-match-vars-K-set!
          gxc#&::push-match-vars-K-set!)
         (%#define-syntax ::push-match-vars |gxc[:0:]#::push-match-vars|)
         (%#define-runtime
          ::push-match-vars-bind-methods!
          gxc#::push-match-vars-bind-methods!)
         (%#begin (%#define-runtime
                   apply-push-match-vars__%
                   gxc#apply-push-match-vars__%)
                  (%#define-runtime
                   apply-push-match-vars__@
                   gxc#apply-push-match-vars__@)
                  (%#define-runtime
                   apply-push-match-vars
                   gxc#apply-push-match-vars))
         (%#define-runtime
          current-annotation-optimizer
          gxc#current-annotation-optimizer)
         (%#define-runtime optimize-annotation% gxc#optimize-annotation%)
         (%#define-runtime optimize-match gxc#optimize-match)
         (%#define-runtime optimize-match-body gxc#optimize-match-body)
         (%#define-runtime
          optimize-match-basic-blocks
          gxc#optimize-match-basic-blocks)
         (%#define-runtime
          optimize-match-lift-basic-blocks
          gxc#optimize-match-lift-basic-blocks)
         (%#define-runtime
          optimize-match-fold-basic-blocks
          gxc#optimize-match-fold-basic-blocks)
         (%#define-runtime optimize-match-block gxc#optimize-match-block)
         (%#define-runtime
          optimize-match-prune-blocks
          gxc#optimize-match-prune-blocks)
         (%#define-runtime
          optimize-match-fuse-restart-blocks
          gxc#optimize-match-fuse-restart-blocks)
         (%#define-runtime
          optimize-match-assert-restart
          gxc#optimize-match-assert-restart)
         (%#define-runtime optimize-syntax-case gxc#optimize-syntax-case)
         (%#define-runtime
          optimize-syntax-case-body
          gxc#optimize-syntax-case-body)
         (%#define-runtime
          optimize-syntax-case-clauses
          gxc#optimize-syntax-case-clauses)
         (%#define-runtime
          optimize-syntax-case-closure
          gxc#optimize-syntax-case-closure)
         (%#define-runtime
          push-match-vars-let-values%
          gxc#push-match-vars-let-values%)
         (%#define-runtime push-match-vars-if% gxc#push-match-vars-if%)
         (%#define-runtime push-match-vars-call% gxc#push-match-vars-call%)
         (%#define-runtime push-match-vars-stop gxc#push-match-vars-stop))
(%#call (%#ref load-module) (%#quote "gerbil/compiler/optimize-ann~0"))
