These are the abstract syntax structures used by marmalade3000i, the marmalade3000 interpreter.

(define-struct number_as (value))           ;; value = 0-9
(define-struct boolean_as (value))          ;; #t or #f
(define-struct binary_operator_as (value))  ;; + or - or * or / or & or ||
(define-struct definition_as (name value))  ;; name is a symbol
(define-struct application_as (operator operand1 operand2))
(define-struct imperative_series_as (the_list))
(define-struct reference_as (name))