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

(%#begin (%#import
          :gerbil/core
          :gerbil/core/expander
          :gerbil/expander
          :gerbil/compiler/base
          :gerbil/compiler/optimize-base)
         (%#export
          #t
          (spec: 0 ast-rules ast-rules)
          (spec: 0 ast-case ast-case)
          (spec: 0 syntax syntax)
          (spec: 0 with-syntax with-syntax)
          (spec: 0 with-syntax* with-syntax*)
          (import: :gerbil/core)
          (import: :gerbil/core/expander)
          (import: :gerbil/expander)
          (import: :gerbil/compiler/optimize-base))
         (%#begin (%#begin-syntax
                   (%#call (%#ref load-module)
                           (%#quote "gerbil/compiler/ssxi~1")))
                  (%#define-syntax declare-type |gxc[:0:]#declare-type|))
         (%#define-syntax declare-class |gxc[:0:]#declare-class|)
         (%#define-syntax declare-type* |gxc[:0:]#declare-type*|)
         (%#define-syntax declare-method |gxc[:0:]#declare-method|)
         (%#define-syntax declare-method* |gxc[:0:]#declare-method*|)
         (%#define-syntax declare-methods |gxc[:0:]#declare-methods|)
         (%#define-syntax @alias |gxc[:0:]#@alias|)
         (%#define-syntax @class |gxc[:0:]#@class|)
         (%#define-syntax @predicate |gxc[:0:]#@predicate|)
         (%#define-syntax @constructor |gxc[:0:]#@constructor|)
         (%#define-syntax @accessor |gxc[:0:]#@accessor|)
         (%#define-syntax @mutator |gxc[:0:]#@mutator|)
         (%#define-syntax @primitive-predicate |gxc[:0:]#@primitive-predicate|)
         (%#define-syntax @interface |gxc[:0:]#@interface|)
         (%#define-syntax @lambda |gxc[:0:]#@lambda|)
         (%#define-syntax @case-lambda |gxc[:0:]#@case-lambda|)
         (%#define-syntax @kw-lambda |gxc[:0:]#@kw-lambda|)
         (%#define-syntax @kw-lambda-dispatch |gxc[:0:]#@kw-lambda-dispatch|)
         (%#define-syntax
          declare-inline-rules!
          |gxc[:0:]#declare-inline-rules!|)
         (%#define-syntax declare-inline-rule! |gxc[:0:]#declare-inline-rule!|)
         (%#define-syntax
          declare-primitive-predicates
          |gxc[:0:]#declare-primitive-predicates|)
         (%#define-syntax
          declare-primitive-procedures
          |gxc[:0:]#declare-primitive-procedures|)
         (%#define-syntax
          declare-primitive-procedure
          |gxc[:0:]#declare-primitive-procedure|)
         (%#begin-syntax
          (%#define-runtime verify-procedure! |gxc[1]#verify-procedure!|)
          (%#define-runtime verify-class! |gxc[1]#verify-class!|)
          (%#define-runtime parse-signature |gxc[1]#parse-signature|)
          (%#define-runtime
           signature->unchecked-signature
           |gxc[1]#signature->unchecked-signature|))
         (%#define-syntax
          declare-primitive-predicate
          |gxc[:0:]#declare-primitive-predicate|)
         (%#define-syntax
          declare-primitive-lambda
          |gxc[:0:]#declare-primitive-lambda|)
         (%#define-syntax
          declare-primitive-case-lambda
          |gxc[:0:]#declare-primitive-case-lambda|)
         (%#define-syntax
          declare-builtin-class
          |gxc[:0:]#declare-builtin-class|)
         (%#define-syntax
          declare-builtin-classes
          |gxc[:0:]#declare-builtin-classes|))
