guicho271828 / trivia

Pattern Matcher Compatible with Optima
Other
332 stars 22 forks source link

Control stack exhausted when expanding match body with strings #119

Closed mthom closed 3 years ago

mthom commented 3 years ago

I don't know if this is a bug or if I am doing something wrong. I have the following function:

(defun prefix-type-cast (cast operand &optional (start 0))
  "Perform a compile-time type cast using a prefixed qualifier. Used
in conjunction with the \"^^\" operator."
  (cond
    ((or (string= cast "http://www.w3.org/2001/XMLSchema#integer")
         (string= cast "http://www.w3.org/2001/XMLSchema#long"))
     (make-ruleml-number :value (parse-integer operand)
                         :position start))
    ((string= cast "http://www.w3.org/2001/XMLSchema#double")
     (make-ruleml-number :value (read-from-string operand)
                         :position start))
    ((string= cast "http://www.w3.org/2001/XMLSchema#string")
     (make-ruleml-string :contents operand
                         :position start))))

which I would much rather write using match:

(defun prefix-type-cast (cast operand &optional (start 0))
  "Perform a compile-time type cast using a prefixed qualifier. Used
in conjunction with the \"^^\" operator."
  (match cast
    ((or "http://www.w3.org/2001/XMLSchema#integer"
         "http://www.w3.org/2001/XMLSchema#long")
     (make-ruleml-number :value (parse-integer operand)
                         :position start))
    ("http://www.w3.org/2001/XMLSchema#double"
     (make-ruleml-number :value (read-from-string operand)
                         :position start))
    ("http://www.w3.org/2001/XMLSchema#string"
     (make-ruleml-string :contents operand
                         :position start))))

When I try to compile it, the control stack is exhausted. This is the backtrace from SBCL:

Control stack exhausted (no more space for function call frames).
This is probably due to heavily nested or infinitely recursive function
calls, or a tail call that SBCL cannot or has not optimized away.

PROCEED WITH CAUTION.
   [Condition of type SB-KERNEL::CONTROL-STACK-EXHAUSTED]

Restarts:
 0: [ABORT] Abort compilation.
 1: [*ABORT] Return to SLIME's top level.
 2: [ABORT] abort thread (#<THREAD "worker" RUNNING {1001A80FD3}>)

Backtrace:
  0: (SB-KERNEL::CONTROL-STACK-EXHAUSTED-ERROR)
  1: ("foreign function: call_into_lisp")
  2: ("foreign function: post_signal_tramp")
  3: ((LABELS SB-IMPL::S :IN SUBST) (#\a))
  4: ((LABELS SB-IMPL::S :IN SUBST) (EQL #\a))
  5: ((LABELS SB-IMPL::S :IN SUBST) ((EQL #\a)))
  6: ((LABELS SB-IMPL::S :IN SUBST) (:TYPE (EQL #\a)))
  7: ((LABELS SB-IMPL::S :IN SUBST) (LET :TYPE (EQL #\a)))
  8: ((LABELS SB-IMPL::S :IN SUBST) (:BINDER LET :TYPE (EQL #\a)))
  9: ((LABELS SB-IMPL::S :IN SUBST) (T :BINDER LET :TYPE (EQL #\a)))
 10: ((LABELS SB-IMPL::S :IN SUBST) (:IGNORABLE T :BINDER LET :TYPE (EQL #\a)))
 11: ((LABELS SB-IMPL::S :IN SUBST) (NIL :IGNORABLE T :BINDER LET :TYPE ...))
 12: ((LABELS SB-IMPL::S :IN SUBST) (:DYNAMIC-EXTENT NIL :IGNORABLE T :BINDER LET ...))
 13: ((LABELS SB-IMPL::S :IN SUBST) (NIL :DYNAMIC-EXTENT NIL :IGNORABLE T :BINDER ...))
 14: ((LABELS SB-IMPL::S :IN SUBST) (:SPECIAL NIL :DYNAMIC-EXTENT NIL :IGNORABLE T ...))
 15: ((LABELS SB-IMPL::S :IN SUBST) (#:IT112 :SPECIAL NIL :DYNAMIC-EXTENT NIL :IGNORABLE ...))
 16: ((LABELS SB-IMPL::S :IN SUBST) ((#1=#:IT112 :SPECIAL NIL :DYNAMIC-EXTENT NIL :IGNORABLE ...) (EQL #1# #\a)))
 17: ((LABELS SB-IMPL::S :IN SUBST) (GUARD1 (#1=#:IT112 :SPECIAL NIL :DYNAMIC-EXTENT NIL :IGNORABLE ...) (EQL #1# #\a)))
 18: ((LABELS SB-IMPL::S :IN SUBST) ((GUARD1 (#1=#:IT112 :SPECIAL NIL :DYNAMIC-EXTENT NIL :IGNORABLE ...) (EQL #1# #\a)) (GUARD1 (#2=#:IT113 :SPECIAL NIL :DYNAMIC-EXTENT NIL :IGNORABLE ...) (EQL #2# #\#)) ..
 19: ((LABELS SB-IMPL::S :IN SUBST) ((GUARD1 (#1=#:IT111 :SPECIAL NIL :DYNAMIC-EXTENT NIL :IGNORABLE ...) (EQL #1# #\m)) (GUARD1 (#2=#:IT112 :SPECIAL NIL :DYNAMIC-EXTENT NIL :IGNORABLE ...) (EQL #2# #\a)) ..
 --more--
guicho271828 commented 3 years ago

Hi, thanks for the report . Would you expand the stack trace a little bit more and try to find a unit of infinite recursion? meanwhile I would also try to replicate the problem myself

mthom commented 3 years ago

OK. This trace is a bit different because I'm trying to load the system from asdf after starting a fresh SBCL instance. I still am not noticing where a fixed point might be:

Control stack exhausted (no more space for function call frames).
This is probably due to heavily nested or infinitely recursive function
calls, or a tail call that SBCL cannot or has not optimized away.

PROCEED WITH CAUTION.
   [Condition of type SB-KERNEL::CONTROL-STACK-EXHAUSTED]

Restarts:
 0: [RETRY] Retry compiling #<CL-SOURCE-FILE "psoatransrun" "psoa-ast">.
 1: [ACCEPT] Continue, treating compiling #<CL-SOURCE-FILE "psoatransrun" "psoa-ast"> as having been successful.
 2: [RETRY] Retry ASDF operation.
 3: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after resetting the configuration.
 4: [RETRY] Retry ASDF operation.
 5: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after resetting the configuration.
 --more--

Backtrace:
  0: (SB-KERNEL::CONTROL-STACK-EXHAUSTED-ERROR)
  1: ("foreign function: call_into_lisp")
  2: ("foreign function: post_signal_tramp")
  3: (TRIVIA.LEVEL2:PATTERN-EXPAND-1 (TRIVIA.LEVEL1:GUARD1 (#1=#:IT95 :SPECIAL NIL :DYNAMIC-EXTENT NIL :IGNORABLE ...) (EQL #1# #\o)))
  4: (TRIVIA.LEVEL2:PATTERN-EXPAND (TRIVIA.LEVEL1:GUARD1 (#1=#:IT95 :SPECIAL NIL :DYNAMIC-EXTENT NIL :IGNORABLE ...) (EQL #1# #\o)))
  5: (TRIVIA.LEVEL2:PATTERN-EXPAND-ALL (TRIVIA.LEVEL1:GUARD1 (#1=#:IT95 :SPECIAL NIL :DYNAMIC-EXTENT NIL :IGNORABLE ...) (EQL #1# #\o)))
  6: (TRIVIA.LEVEL2.IMPL::PATTERN-EXPAND-ALL/LIFT0 (TRIVIA.LEVEL1:GUARD1 (#1=#:IT95 :SPECIAL NIL :DYNAMIC-EXTENT NIL :IGNORABLE ...) (EQL #1# #\o)))
  7: (TRIVIA.LEVEL2.IMPL::PATTERN-EXPAND-ALL/LIFT (TRIVIA.LEVEL1:GUARD1 (#1=#:IT95 :SPECIAL NIL :DYNAMIC-EXTENT NIL :IGNORABLE ...) (EQL #1# #\o)))
  8: (TRIVIA.LEVEL2.IMPL::EXPAND-MULTIPATTERNS ((TRIVIA.LEVEL1:GUARD1 (#1=#:IT95 :SPECIAL NIL :DYNAMIC-EXTENT NIL :IGNORABLE ...) (EQL #1# #\o)) (TRIVIA.LEVEL1:GUARD1 (#2=#:IT96 :SPECIAL NIL :DYNAMIC-EXTEN..
  9: (TRIVIA.LEVEL2.IMPL::EXPAND-MULTIPATTERNS ((TRIVIA.LEVEL1:GUARD1 (#1=#:IT94 :SPECIAL NIL :DYNAMIC-EXTENT NIL :IGNORABLE ...) (EQL #1# #\.)) (TRIVIA.LEVEL1:GUARD1 (#2=#:IT95 :SPECIAL NIL :DYNAMIC-EXTEN..
 10: (TRIVIA.LEVEL2.IMPL::EXPAND-MULTIPATTERNS ((TRIVIA.LEVEL1:GUARD1 (#1=#:IT93 :SPECIAL NIL :DYNAMIC-EXTENT NIL :IGNORABLE ...) (EQL #1# #\3)) (TRIVIA.LEVEL1:GUARD1 (#2=#:IT94 :SPECIAL NIL :DYNAMIC-EXTEN..
 11: (TRIVIA.LEVEL2.IMPL::EXPAND-MULTIPATTERNS ((TRIVIA.LEVEL1:GUARD1 (#1=#:IT92 :SPECIAL NIL :DYNAMIC-EXTENT NIL :IGNORABLE ...) (EQL #1# #\w)) (TRIVIA.LEVEL1:GUARD1 (#2=#:IT93 :SPECIAL NIL :DYNAMIC-EXTEN..
 12: (TRIVIA.LEVEL2.IMPL::EXPAND-MULTIPATTERNS ((TRIVIA.LEVEL1:GUARD1 (#1=#:IT91 :SPECIAL NIL :DYNAMIC-EXTENT NIL :IGNORABLE ...) (EQL #1# #\.)) (TRIVIA.LEVEL1:GUARD1 (#2=#:IT92 :SPECIAL NIL :DYNAMIC-EXTEN..
 13: (TRIVIA.LEVEL2.IMPL::EXPAND-CLAUSE (((TRIVIA.LEVEL1:GUARD1 # #) (TRIVIA.LEVEL1:GUARD1 # #) (TRIVIA.LEVEL1:GUARD1 # #) (TRIVIA.LEVEL1:GUARD1 # #) (TRIVIA.LEVEL1:GUARD1 # #) (TRIVIA.LEVEL1:GUARD1 # #) ...
 14: ((MACRO-FUNCTION TRIVIA.LEVEL2:MATCH2*+) (TRIVIA.LEVEL2:MATCH2*+ (#:PAT2059 #:PAT2060 #:PAT2061 #:PAT2062 #:PAT2063 #:PAT2064 ...) (T T T T T T ...) ((# # # # # # ...) (PSOA-AST:MAKE-RULEML-NUMBER :VA..
 15: (SB-C::CAREFUL-EXPAND-MACRO #<FUNCTION (MACRO-FUNCTION TRIVIA.LEVEL2:MATCH2*+) {52FB8B9B}> (TRIVIA.LEVEL2:MATCH2*+ (#:PAT2059 #:PAT2060 #:PAT2061 #:PAT2062 #:PAT2063 #:PAT2064 ...) (T T T T T T ...) (..
 16: (SB-C::IR1-CONVERT-GLOBAL-FUNCTOID #<SB-C::CTRAN 10 {1006010553}> #<SB-C::CTRAN 11 {10060106B3}> #<SB-C::LVAR 12 {10060106E3}> (TRIVIA.LEVEL2:MATCH2*+ (#:PAT2059 #:PAT2060 #:PAT2061 #:PAT2062 #:PAT206..
 17: (SB-C::IR1-CONVERT #<SB-C::CTRAN 10 {1006010553}> #<SB-C::CTRAN 11 {10060106B3}> #<SB-C::LVAR 12 {10060106E3}> (TRIVIA.LEVEL2:MATCH2*+ (#:PAT2059 #:PAT2060 #:PAT2061 #:PAT2062 #:PAT2063 #:PAT2064 ...)..
 18: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 10 {1006010553}> #<SB-C::CTRAN 11 {10060106B3}> #<SB-C::LVAR 12 {10060106E3}> ((TRIVIA.LEVEL2:MATCH2*+ (#:PAT2059 #:PAT2060 #:PAT2061 #:PAT2062 #:PAT2063 #:..
 19: (SB-C::%PROCESSING-DECLS NIL NIL NIL #<SB-C::CTRAN 11 {10060106B3}> #<SB-C::LVAR 12 {10060106E3}> NIL #<CLOSURE (LAMBDA (SB-C::NEXT SB-C::RESULT #:LEXENV1) :IN SB-C::IR1-TRANSLATE-LOCALLY) {10060107BB..
 20: (SB-C::IR1-CONVERT-LOCALLY #<SB-C::CTRAN 10 {1006010553}> #<SB-C::CTRAN 11 {10060106B3}> #<SB-C::LVAR 12 {10060106E3}> (LOCALLY (TRIVIA.LEVEL2:MATCH2*+ (#:PAT2059 #:PAT2060 #:PAT2061 #:PAT2062 #:PAT20..
 21: (SB-C::IR1-CONVERT #<SB-C::CTRAN 10 {1006010553}> #<SB-C::CTRAN 11 {10060106B3}> #<SB-C::LVAR 12 {10060106E3}> (LOCALLY (TRIVIA.LEVEL2:MATCH2*+ (#:PAT2059 #:PAT2060 #:PAT2061 #:PAT2062 #:PAT2063 #:PAT..
 22: (SB-C::IR1-CONVERT-RETURN-FROM #<SB-C::CTRAN 10 {1006010553}> #<SB-C::CTRAN 13 {10060102A3}> #<unused argument> (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY (TRIVIA.LEVEL2:MATCH2*+ # # # # #))))
 23: (SB-C::IR1-CONVERT #<SB-C::CTRAN 10 {1006010553}> #<SB-C::CTRAN 13 {10060102A3}> #<SB-C::LVAR 14 {10060102D3}> (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY (TRIVIA.LEVEL2:MATCH2*+ # # # # #))))
 24: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 10 {1006010553}> #<SB-C::CTRAN 13 {10060102A3}> #<SB-C::LVAR 14 {10060102D3}> ((RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))))
 25: (SB-C::IR1-CONVERT-AUX-BINDINGS #<SB-C::CTRAN 10 {1006010553}> #<SB-C::CTRAN 13 {10060102A3}> #<SB-C::LVAR 14 {10060102D3}> ((RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))) NIL NIL NIL)
 26: (SB-C::IR1-CONVERT-SPECIAL-BINDINGS #<SB-C::CTRAN 10 {1006010553}> #<SB-C::CTRAN 13 {10060102A3}> #<SB-C::LVAR 14 {10060102D3}> ((RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))) NIL NIL NIL NIL)
 27: (SB-C::IR1-CONVERT-LAMBDA-BODY ((RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))) (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:IT2088 {1005FF7D83}>) :AUX-VARS NIL :AUX-VALS NIL :SOURCE-NAME SB-C::.ANONYMOUS..
 28: ((LAMBDA (SB-C::NEXT SB-C::RESULT SB-C::POST-BINDING-LEXENV) :IN SB-C::IR1-CONVERT-LET) #<SB-C::CTRAN 1 {1005FF78E3}> NIL NIL)
 29: (SB-C::%PROCESSING-DECLS ((DECLARE (IGNORABLE #:IT2088))) (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:IT2088 {1005FF7D83}>) NIL #<SB-C::CTRAN 1 {1005FF78E3}> NIL T #<CLOSURE (LAMBDA (SB-C::NEXT SB-C::RESULT S..
 30: (SB-C::IR1-CONVERT-LET #<SB-C::CTRAN 15 {1005FF7A83}> #<SB-C::CTRAN 1 {1005FF78E3}> NIL (LET ((#1=#:IT2088 #:WHAT12152)) (DECLARE (IGNORABLE #1#)) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))))
 31: (SB-C::IR1-CONVERT #<SB-C::CTRAN 15 {1005FF7A83}> #<SB-C::CTRAN 1 {1005FF78E3}> NIL (LET ((#1=#:IT2088 #:WHAT12152)) (DECLARE (IGNORABLE #1#)) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))))
 32: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 15 {1005FF7A83}> #<SB-C::CTRAN 1 {1005FF78E3}> NIL ((LET (#) (DECLARE #) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE #))))
 33: (SB-C::IR1-CONVERT-BLOCK #<SB-C::CTRAN 16 {1005FF7733}> #<SB-C::CTRAN 1 {1005FF78E3}> NIL (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET (#) (DECLARE #) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE #))))
 34: (SB-C::IR1-CONVERT #<SB-C::CTRAN 16 {1005FF7733}> #<SB-C::CTRAN 1 {1005FF78E3}> NIL (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET (#) (DECLARE #) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE #))))
 35: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 16 {1005FF7733}> #<SB-C::CTRAN 2 {1005FF7263}> #<SB-C::LVAR 3 {1005FF7293}> ((BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET # # #)) (LET (#) (DECLARE #) (RETURN-FRO..
 36: (SB-C::IR1-CONVERT-BLOCK #<SB-C::CTRAN 17 {1005FF7513}> #<SB-C::CTRAN 2 {1005FF7263}> #<SB-C::LVAR 3 {1005FF7293}> (BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET # # #)) (LET ..
 37: (SB-C::IR1-CONVERT #<SB-C::CTRAN 17 {1005FF7513}> #<SB-C::CTRAN 2 {1005FF7263}> #<SB-C::LVAR 3 {1005FF7293}> (BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET # # #)) (LET (#) (D..
 38: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 17 {1005FF7513}> #<SB-C::CTRAN 2 {1005FF7263}> #<SB-C::LVAR 3 {1005FF7293}> ((BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE #) (LET # # ..
 39: (SB-C::IR1-CONVERT-AUX-BINDINGS #<SB-C::CTRAN 17 {1005FF7513}> #<SB-C::CTRAN 2 {1005FF7263}> #<SB-C::LVAR 3 {1005FF7293}> ((BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE #) (LET # ..
 40: (SB-C::IR1-CONVERT-SPECIAL-BINDINGS #<SB-C::CTRAN 17 {1005FF7513}> #<SB-C::CTRAN 2 {1005FF7263}> #<SB-C::LVAR 3 {1005FF7293}> ((BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE #) (LE..
 41: (SB-C::IR1-CONVERT-LAMBDA-BODY ((BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE #) (LET # # #))) (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:WHAT12152 {1005FF6D93}>) :AUX-VARS NIL :AUX-VALS..
 42: ((LAMBDA (SB-C::NEXT SB-C::RESULT SB-C::POST-BINDING-LEXENV) :IN SB-C::IR1-CONVERT-LET) #<SB-C::CTRAN 18 {1005FF6043}> #<SB-C::LVAR 19 {1005FF6073}> NIL)
 43: (SB-C::%PROCESSING-DECLS ((DECLARE (IGNORABLE #:WHAT12152))) (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:WHAT12152 {1005FF6D93}>) NIL #<SB-C::CTRAN 18 {1005FF6043}> #<SB-C::LVAR 19 {1005FF6073}> T #<CLOSURE (..
 44: (SB-C::IR1-CONVERT-LET #<SB-C::CTRAN 20 {1005FF5EE3}> #<SB-C::CTRAN 18 {1005FF6043}> #<SB-C::LVAR 19 {1005FF6073}> (LET ((#1=#:WHAT12152 NIL)) (DECLARE (IGNORABLE #1#)) (BLOCK TRIVIA.LEVEL1.IMPL::WHOL..
 45: (SB-C::IR1-CONVERT #<SB-C::CTRAN 20 {1005FF5EE3}> #<SB-C::CTRAN 18 {1005FF6043}> #<SB-C::LVAR 19 {1005FF6073}> (LET ((#1=#:WHAT12152 NIL)) (DECLARE (IGNORABLE #1#)) (BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (B..
 46: (SB-C::IR1-CONVERT-GLOBAL-FUNCTOID #<SB-C::CTRAN 20 {1005FF5EE3}> #<SB-C::CTRAN 18 {1005FF6043}> #<SB-C::LVAR 19 {1005FF6073}> (TRIVIA.LEVEL1:MATCH1 NIL ((TRIVIA.LEVEL1:GUARD1 #:IT2088 T) (TRIVIA.LEVE..
 47: (SB-C::IR1-CONVERT #<SB-C::CTRAN 20 {1005FF5EE3}> #<SB-C::CTRAN 18 {1005FF6043}> #<SB-C::LVAR 19 {1005FF6073}> (TRIVIA.LEVEL1:MATCH1 NIL ((TRIVIA.LEVEL1:GUARD1 #:IT2088 T) (TRIVIA.LEVEL2:MATCH2*+ # # ..
 48: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 20 {1005FF5EE3}> #<SB-C::CTRAN 18 {1005FF6043}> #<SB-C::LVAR 19 {1005FF6073}> ((TRIVIA.LEVEL1:MATCH1 NIL (# #) (# #))))
 49: (SB-C::%PROCESSING-DECLS NIL NIL NIL #<SB-C::CTRAN 18 {1005FF6043}> #<SB-C::LVAR 19 {1005FF6073}> NIL #<CLOSURE (LAMBDA (SB-C::NEXT SB-C::RESULT #:LEXENV1) :IN SB-C::IR1-TRANSLATE-LOCALLY) {1005FF614B..
 50: (SB-C::IR1-CONVERT-LOCALLY #<SB-C::CTRAN 20 {1005FF5EE3}> #<SB-C::CTRAN 18 {1005FF6043}> #<SB-C::LVAR 19 {1005FF6073}> (LOCALLY (TRIVIA.LEVEL1:MATCH1 NIL (# #) (# #))))
 51: (SB-C::IR1-CONVERT #<SB-C::CTRAN 20 {1005FF5EE3}> #<SB-C::CTRAN 18 {1005FF6043}> #<SB-C::LVAR 19 {1005FF6073}> (LOCALLY (TRIVIA.LEVEL1:MATCH1 NIL (# #) (# #))))
 52: (SB-C::IR1-CONVERT-RETURN-FROM #<SB-C::CTRAN 20 {1005FF5EE3}> #<SB-C::CTRAN 21 {1005FF5C33}> #<unused argument> (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY (TRIVIA.LEVEL1:MATCH1 NIL # #))))
 53: (SB-C::IR1-CONVERT #<SB-C::CTRAN 20 {1005FF5EE3}> #<SB-C::CTRAN 21 {1005FF5C33}> #<SB-C::LVAR 22 {1005FF5C63}> (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY (TRIVIA.LEVEL1:MATCH1 NIL # #))))
 54: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 20 {1005FF5EE3}> #<SB-C::CTRAN 21 {1005FF5C33}> #<SB-C::LVAR 22 {1005FF5C63}> ((RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))))
 55: (SB-C::IR1-CONVERT-AUX-BINDINGS #<SB-C::CTRAN 20 {1005FF5EE3}> #<SB-C::CTRAN 21 {1005FF5C33}> #<SB-C::LVAR 22 {1005FF5C63}> ((RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))) NIL NIL NIL)
 56: (SB-C::IR1-CONVERT-SPECIAL-BINDINGS #<SB-C::CTRAN 20 {1005FF5EE3}> #<SB-C::CTRAN 21 {1005FF5C33}> #<SB-C::LVAR 22 {1005FF5C63}> ((RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))) NIL NIL NIL NIL)
 57: (SB-C::IR1-CONVERT-LAMBDA-BODY ((RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))) (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:PAT2087 {1005FF5763}>) :AUX-VARS NIL :AUX-VALS NIL :SOURCE-NAME SB-C::.ANONYMOU..
 58: ((LAMBDA (SB-C::NEXT SB-C::RESULT SB-C::POST-BINDING-LEXENV) :IN SB-C::IR1-CONVERT-LET) #<SB-C::CTRAN 4 {1005FF52C3}> NIL NIL)
 59: (SB-C::%PROCESSING-DECLS ((DECLARE (IGNORABLE #:PAT2087))) (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:PAT2087 {1005FF5763}>) NIL #<SB-C::CTRAN 4 {1005FF52C3}> NIL T #<CLOSURE (LAMBDA (SB-C::NEXT SB-C::RESULT..
 60: (SB-C::IR1-CONVERT-LET #<SB-C::CTRAN 23 {1005FF5463}> #<SB-C::CTRAN 4 {1005FF52C3}> NIL (LET ((#1=#:PAT2087 #:WHAT12151)) (DECLARE (IGNORABLE #1#)) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #)))..
 61: (SB-C::IR1-CONVERT #<SB-C::CTRAN 23 {1005FF5463}> #<SB-C::CTRAN 4 {1005FF52C3}> NIL (LET ((#1=#:PAT2087 #:WHAT12151)) (DECLARE (IGNORABLE #1#)) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))))
 62: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 23 {1005FF5463}> #<SB-C::CTRAN 4 {1005FF52C3}> NIL ((LET (#) (DECLARE #) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE #))))
 63: (SB-C::IR1-CONVERT-BLOCK #<SB-C::CTRAN 24 {1005FF5113}> #<SB-C::CTRAN 4 {1005FF52C3}> NIL (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET (#) (DECLARE #) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE #))))
 64: (SB-C::IR1-CONVERT #<SB-C::CTRAN 24 {1005FF5113}> #<SB-C::CTRAN 4 {1005FF52C3}> NIL (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET (#) (DECLARE #) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE #))))
 65: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 24 {1005FF5113}> #<SB-C::CTRAN 5 {1005FF4C43}> #<SB-C::LVAR 6 {1005FF4C73}> ((BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET # # #)) (LET (#) (DECLARE #) (RETURN-FRO..
 66: (SB-C::IR1-CONVERT-BLOCK #<SB-C::CTRAN 25 {1005FF4EF3}> #<SB-C::CTRAN 5 {1005FF4C43}> #<SB-C::LVAR 6 {1005FF4C73}> (BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET # # #)) (LET ..
 67: (SB-C::IR1-CONVERT #<SB-C::CTRAN 25 {1005FF4EF3}> #<SB-C::CTRAN 5 {1005FF4C43}> #<SB-C::LVAR 6 {1005FF4C73}> (BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET # # #)) (LET (#) (D..
 68: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 25 {1005FF4EF3}> #<SB-C::CTRAN 5 {1005FF4C43}> #<SB-C::LVAR 6 {1005FF4C73}> ((BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE #) (LET # # ..
 69: (SB-C::IR1-CONVERT-AUX-BINDINGS #<SB-C::CTRAN 25 {1005FF4EF3}> #<SB-C::CTRAN 5 {1005FF4C43}> #<SB-C::LVAR 6 {1005FF4C73}> ((BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE #) (LET # ..
 70: (SB-C::IR1-CONVERT-SPECIAL-BINDINGS #<SB-C::CTRAN 25 {1005FF4EF3}> #<SB-C::CTRAN 5 {1005FF4C43}> #<SB-C::LVAR 6 {1005FF4C73}> ((BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE #) (LE..
 71: (SB-C::IR1-CONVERT-LAMBDA-BODY ((BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE #) (LET # # #))) (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:WHAT12151 {1005FF4773}>) :AUX-VARS NIL :AUX-VALS..
 72: ((LAMBDA (SB-C::NEXT SB-C::RESULT SB-C::POST-BINDING-LEXENV) :IN SB-C::IR1-CONVERT-LET) #<SB-C::CTRAN 26 {1005FF3A23}> #<SB-C::LVAR 27 {1005FF3A53}> NIL)
 73: (SB-C::%PROCESSING-DECLS ((DECLARE (IGNORABLE #:WHAT12151))) (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:WHAT12151 {1005FF4773}>) NIL #<SB-C::CTRAN 26 {1005FF3A23}> #<SB-C::LVAR 27 {1005FF3A53}> T #<CLOSURE (..
 74: (SB-C::IR1-CONVERT-LET #<SB-C::CTRAN 28 {1005FF38C3}> #<SB-C::CTRAN 26 {1005FF3A23}> #<SB-C::LVAR 27 {1005FF3A53}> (LET ((#1=#:WHAT12151 #:ARG2027)) (DECLARE (IGNORABLE #1#)) (BLOCK TRIVIA.LEVEL1.IMPL..
 75: (SB-C::IR1-CONVERT #<SB-C::CTRAN 28 {1005FF38C3}> #<SB-C::CTRAN 26 {1005FF3A23}> #<SB-C::LVAR 27 {1005FF3A53}> (LET ((#1=#:WHAT12151 #:ARG2027)) (DECLARE (IGNORABLE #1#)) (BLOCK TRIVIA.LEVEL1.IMPL::WH..
 76: (SB-C::IR1-CONVERT-GLOBAL-FUNCTOID #<SB-C::CTRAN 28 {1005FF38C3}> #<SB-C::CTRAN 26 {1005FF3A23}> #<SB-C::LVAR 27 {1005FF3A53}> (TRIVIA.LEVEL1:MATCH1 #:ARG2027 ((TRIVIA.LEVEL1:GUARD1 #:PAT2087 T) (TRIV..
 77: (SB-C::IR1-CONVERT #<SB-C::CTRAN 28 {1005FF38C3}> #<SB-C::CTRAN 26 {1005FF3A23}> #<SB-C::LVAR 27 {1005FF3A53}> (TRIVIA.LEVEL1:MATCH1 #:ARG2027 ((TRIVIA.LEVEL1:GUARD1 #:PAT2087 T) (TRIVIA.LEVEL1:MATCH1..
 78: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 28 {1005FF38C3}> #<SB-C::CTRAN 26 {1005FF3A23}> #<SB-C::LVAR 27 {1005FF3A53}> ((TRIVIA.LEVEL1:MATCH1 #:ARG2027 (# #) (# #))))
 79: (SB-C::%PROCESSING-DECLS NIL NIL NIL #<SB-C::CTRAN 26 {1005FF3A23}> #<SB-C::LVAR 27 {1005FF3A53}> NIL #<CLOSURE (LAMBDA (SB-C::NEXT SB-C::RESULT #:LEXENV1) :IN SB-C::IR1-TRANSLATE-LOCALLY) {1005FF3B2B..
 80: (SB-C::IR1-CONVERT-LOCALLY #<SB-C::CTRAN 28 {1005FF38C3}> #<SB-C::CTRAN 26 {1005FF3A23}> #<SB-C::LVAR 27 {1005FF3A53}> (LOCALLY (TRIVIA.LEVEL1:MATCH1 #:ARG2027 (# #) (# #))))
 81: (SB-C::IR1-CONVERT #<SB-C::CTRAN 28 {1005FF38C3}> #<SB-C::CTRAN 26 {1005FF3A23}> #<SB-C::LVAR 27 {1005FF3A53}> (LOCALLY (TRIVIA.LEVEL1:MATCH1 #:ARG2027 (# #) (# #))))
 82: (SB-C::IR1-CONVERT-RETURN-FROM #<SB-C::CTRAN 28 {1005FF38C3}> #<SB-C::CTRAN 29 {1005FF3613}> #<unused argument> (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY (TRIVIA.LEVEL1:MATCH1 #:ARG2027 # #))))
 83: (SB-C::IR1-CONVERT #<SB-C::CTRAN 28 {1005FF38C3}> #<SB-C::CTRAN 29 {1005FF3613}> #<SB-C::LVAR 30 {1005FF3643}> (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY (TRIVIA.LEVEL1:MATCH1 #:ARG2027 # #))))
 84: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 28 {1005FF38C3}> #<SB-C::CTRAN 29 {1005FF3613}> #<SB-C::LVAR 30 {1005FF3643}> ((RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))))
 85: (SB-C::IR1-CONVERT-AUX-BINDINGS #<SB-C::CTRAN 28 {1005FF38C3}> #<SB-C::CTRAN 29 {1005FF3613}> #<SB-C::LVAR 30 {1005FF3643}> ((RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))) NIL NIL NIL)
 86: (SB-C::IR1-CONVERT-SPECIAL-BINDINGS #<SB-C::CTRAN 28 {1005FF38C3}> #<SB-C::CTRAN 29 {1005FF3613}> #<SB-C::LVAR 30 {1005FF3643}> ((RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))) NIL NIL NIL NIL)
 87: (SB-C::IR1-CONVERT-LAMBDA-BODY ((RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))) (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:PAT2086 {1005FF3143}>) :AUX-VARS NIL :AUX-VALS NIL :SOURCE-NAME SB-C::.ANONYMOU..
 88: ((LAMBDA (SB-C::NEXT SB-C::RESULT SB-C::POST-BINDING-LEXENV) :IN SB-C::IR1-CONVERT-LET) #<SB-C::CTRAN 7 {1005FF2CA3}> NIL NIL)
 89: (SB-C::%PROCESSING-DECLS ((DECLARE (IGNORABLE #:PAT2086))) (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:PAT2086 {1005FF3143}>) NIL #<SB-C::CTRAN 7 {1005FF2CA3}> NIL T #<CLOSURE (LAMBDA (SB-C::NEXT SB-C::RESULT..
 90: (SB-C::IR1-CONVERT-LET #<SB-C::CTRAN 31 {1005FF2E43}> #<SB-C::CTRAN 7 {1005FF2CA3}> NIL (LET ((#1=#:PAT2086 #:WHAT12150)) (DECLARE (IGNORABLE #1#)) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #)))..
 91: (SB-C::IR1-CONVERT #<SB-C::CTRAN 31 {1005FF2E43}> #<SB-C::CTRAN 7 {1005FF2CA3}> NIL (LET ((#1=#:PAT2086 #:WHAT12150)) (DECLARE (IGNORABLE #1#)) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))))
 92: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 31 {1005FF2E43}> #<SB-C::CTRAN 7 {1005FF2CA3}> NIL ((LET (#) (DECLARE #) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE #))))
 93: (SB-C::IR1-CONVERT-BLOCK #<SB-C::CTRAN 32 {1005FF2AF3}> #<SB-C::CTRAN 7 {1005FF2CA3}> NIL (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET (#) (DECLARE #) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE #))))
 94: (SB-C::IR1-CONVERT #<SB-C::CTRAN 32 {1005FF2AF3}> #<SB-C::CTRAN 7 {1005FF2CA3}> NIL (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET (#) (DECLARE #) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE #))))
 95: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 32 {1005FF2AF3}> #<SB-C::CTRAN 8 {1005FF2623}> #<SB-C::LVAR 9 {1005FF2653}> ((BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET # # #)) (LET (#) (DECLARE #) (RETURN-FRO..
 96: (SB-C::IR1-CONVERT-BLOCK #<SB-C::CTRAN 33 {1005FF28D3}> #<SB-C::CTRAN 8 {1005FF2623}> #<SB-C::LVAR 9 {1005FF2653}> (BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET # # #)) (LET ..
 97: (SB-C::IR1-CONVERT #<SB-C::CTRAN 33 {1005FF28D3}> #<SB-C::CTRAN 8 {1005FF2623}> #<SB-C::LVAR 9 {1005FF2653}> (BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET # # #)) (LET (#) (D..
 98: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 33 {1005FF28D3}> #<SB-C::CTRAN 8 {1005FF2623}> #<SB-C::LVAR 9 {1005FF2653}> ((BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE #) (LET # # ..
 99: (SB-C::IR1-CONVERT-AUX-BINDINGS #<SB-C::CTRAN 33 {1005FF28D3}> #<SB-C::CTRAN 8 {1005FF2623}> #<SB-C::LVAR 9 {1005FF2653}> ((BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE #) (LET # ..
 100: (SB-C::IR1-CONVERT-SPECIAL-BINDINGS #<SB-C::CTRAN 33 {1005FF28D3}> #<SB-C::CTRAN 8 {1005FF2623}> #<SB-C::LVAR 9 {1005FF2653}> ((BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE #) (LE..
 101: (SB-C::IR1-CONVERT-LAMBDA-BODY ((BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE #) (LET # # #))) (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:WHAT12150 {1005FF2153}>) :AUX-VARS NIL :AUX-VALS..
 102: ((LAMBDA (SB-C::NEXT SB-C::RESULT SB-C::POST-BINDING-LEXENV) :IN SB-C::IR1-CONVERT-LET) #<SB-C::CTRAN 34 {1005FF1403}> #<SB-C::LVAR 35 {1005FF1433}> NIL)
 103: (SB-C::%PROCESSING-DECLS ((DECLARE (IGNORABLE #:WHAT12150))) (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:WHAT12150 {1005FF2153}>) NIL #<SB-C::CTRAN 34 {1005FF1403}> #<SB-C::LVAR 35 {1005FF1433}> T #<CLOSURE (..
 104: (SB-C::IR1-CONVERT-LET #<SB-C::CTRAN 36 {1005FF12A3}> #<SB-C::CTRAN 34 {1005FF1403}> #<SB-C::LVAR 35 {1005FF1433}> (LET ((#1=#:WHAT12150 #:ARG2026)) (DECLARE (IGNORABLE #1#)) (BLOCK TRIVIA.LEVEL1.IMPL..
 105: (SB-C::IR1-CONVERT #<SB-C::CTRAN 36 {1005FF12A3}> #<SB-C::CTRAN 34 {1005FF1403}> #<SB-C::LVAR 35 {1005FF1433}> (LET ((#1=#:WHAT12150 #:ARG2026)) (DECLARE (IGNORABLE #1#)) (BLOCK TRIVIA.LEVEL1.IMPL::WH..
 106: (SB-C::IR1-CONVERT-GLOBAL-FUNCTOID #<SB-C::CTRAN 36 {1005FF12A3}> #<SB-C::CTRAN 34 {1005FF1403}> #<SB-C::LVAR 35 {1005FF1433}> (TRIVIA.LEVEL1:MATCH1 #:ARG2026 ((TRIVIA.LEVEL1:GUARD1 #:PAT2086 T) (TRIV..
 107: (SB-C::IR1-CONVERT #<SB-C::CTRAN 36 {1005FF12A3}> #<SB-C::CTRAN 34 {1005FF1403}> #<SB-C::LVAR 35 {1005FF1433}> (TRIVIA.LEVEL1:MATCH1 #:ARG2026 ((TRIVIA.LEVEL1:GUARD1 #:PAT2086 T) (TRIVIA.LEVEL1:MATCH1..
 108: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 36 {1005FF12A3}> #<SB-C::CTRAN 34 {1005FF1403}> #<SB-C::LVAR 35 {1005FF1433}> ((TRIVIA.LEVEL1:MATCH1 #:ARG2026 (# #) (# #))))
 109: (SB-C::%PROCESSING-DECLS NIL NIL NIL #<SB-C::CTRAN 34 {1005FF1403}> #<SB-C::LVAR 35 {1005FF1433}> NIL #<CLOSURE (LAMBDA (SB-C::NEXT SB-C::RESULT #:LEXENV1) :IN SB-C::IR1-TRANSLATE-LOCALLY) {1005FF150B..
 110: (SB-C::IR1-CONVERT-LOCALLY #<SB-C::CTRAN 36 {1005FF12A3}> #<SB-C::CTRAN 34 {1005FF1403}> #<SB-C::LVAR 35 {1005FF1433}> (LOCALLY (TRIVIA.LEVEL1:MATCH1 #:ARG2026 (# #) (# #))))
 111: (SB-C::IR1-CONVERT #<SB-C::CTRAN 36 {1005FF12A3}> #<SB-C::CTRAN 34 {1005FF1403}> #<SB-C::LVAR 35 {1005FF1433}> (LOCALLY (TRIVIA.LEVEL1:MATCH1 #:ARG2026 (# #) (# #))))
 112: (SB-C::IR1-CONVERT-RETURN-FROM #<SB-C::CTRAN 36 {1005FF12A3}> #<SB-C::CTRAN 37 {1005FF0FF3}> #<unused argument> (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY (TRIVIA.LEVEL1:MATCH1 #:ARG2026 # #))))
 113: (SB-C::IR1-CONVERT #<SB-C::CTRAN 36 {1005FF12A3}> #<SB-C::CTRAN 37 {1005FF0FF3}> #<SB-C::LVAR 38 {1005FF1023}> (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY (TRIVIA.LEVEL1:MATCH1 #:ARG2026 # #))))
 114: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 36 {1005FF12A3}> #<SB-C::CTRAN 37 {1005FF0FF3}> #<SB-C::LVAR 38 {1005FF1023}> ((RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))))
 115: (SB-C::IR1-CONVERT-AUX-BINDINGS #<SB-C::CTRAN 36 {1005FF12A3}> #<SB-C::CTRAN 37 {1005FF0FF3}> #<SB-C::LVAR 38 {1005FF1023}> ((RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))) NIL NIL NIL)
 116: (SB-C::IR1-CONVERT-SPECIAL-BINDINGS #<SB-C::CTRAN 36 {1005FF12A3}> #<SB-C::CTRAN 37 {1005FF0FF3}> #<SB-C::LVAR 38 {1005FF1023}> ((RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))) NIL NIL NIL NIL)
 117: (SB-C::IR1-CONVERT-LAMBDA-BODY ((RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))) (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:PAT2085 {1005FF0B23}>) :AUX-VARS NIL :AUX-VALS NIL :SOURCE-NAME SB-C::.ANONYMOU..
 118: ((LAMBDA (SB-C::NEXT SB-C::RESULT SB-C::POST-BINDING-LEXENV) :IN SB-C::IR1-CONVERT-LET) #<SB-C::CTRAN 39 {1005FF0683}> NIL NIL)
 119: (SB-C::%PROCESSING-DECLS ((DECLARE (IGNORABLE #:PAT2085))) (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:PAT2085 {1005FF0B23}>) NIL #<SB-C::CTRAN 39 {1005FF0683}> NIL T #<CLOSURE (LAMBDA (SB-C::NEXT SB-C::RESUL..
 120: (SB-C::IR1-CONVERT-LET #<SB-C::CTRAN 40 {1005FF0823}> #<SB-C::CTRAN 39 {1005FF0683}> NIL (LET ((#1=#:PAT2085 #:WHAT12149)) (DECLARE (IGNORABLE #1#)) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))..
 121: (SB-C::IR1-CONVERT #<SB-C::CTRAN 40 {1005FF0823}> #<SB-C::CTRAN 39 {1005FF0683}> NIL (LET ((#1=#:PAT2085 #:WHAT12149)) (DECLARE (IGNORABLE #1#)) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))))
 122: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 40 {1005FF0823}> #<SB-C::CTRAN 39 {1005FF0683}> NIL ((LET (#) (DECLARE #) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE #))))
 123: (SB-C::IR1-CONVERT-BLOCK #<SB-C::CTRAN 41 {1005FF04D3}> #<SB-C::CTRAN 39 {1005FF0683}> NIL (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET (#) (DECLARE #) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE #))))
 124: (SB-C::IR1-CONVERT #<SB-C::CTRAN 41 {1005FF04D3}> #<SB-C::CTRAN 39 {1005FF0683}> NIL (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET (#) (DECLARE #) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE #))))
 125: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 41 {1005FF04D3}> #<SB-C::CTRAN 42 {1005FF0003}> #<SB-C::LVAR 43 {1005FF0033}> ((BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET # # #)) (LET (#) (DECLARE #) (RETURN-F..
 126: (SB-C::IR1-CONVERT-BLOCK #<SB-C::CTRAN 44 {1005FF02B3}> #<SB-C::CTRAN 42 {1005FF0003}> #<SB-C::LVAR 43 {1005FF0033}> (BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET # # #)) (LE..
 127: (SB-C::IR1-CONVERT #<SB-C::CTRAN 44 {1005FF02B3}> #<SB-C::CTRAN 42 {1005FF0003}> #<SB-C::LVAR 43 {1005FF0033}> (BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET # # #)) (LET (#) ..
 128: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 44 {1005FF02B3}> #<SB-C::CTRAN 42 {1005FF0003}> #<SB-C::LVAR 43 {1005FF0033}> ((BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE #) (LET # ..
 129: (SB-C::IR1-CONVERT-AUX-BINDINGS #<SB-C::CTRAN 44 {1005FF02B3}> #<SB-C::CTRAN 42 {1005FF0003}> #<SB-C::LVAR 43 {1005FF0033}> ((BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE #) (LET ..
 130: (SB-C::IR1-CONVERT-SPECIAL-BINDINGS #<SB-C::CTRAN 44 {1005FF02B3}> #<SB-C::CTRAN 42 {1005FF0003}> #<SB-C::LVAR 43 {1005FF0033}> ((BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE #) (..
 131: (SB-C::IR1-CONVERT-LAMBDA-BODY ((BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE #) (LET # # #))) (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:WHAT12149 {1005FEFB13}>) :AUX-VARS NIL :AUX-VALS..
 132: ((LAMBDA (SB-C::NEXT SB-C::RESULT SB-C::POST-BINDING-LEXENV) :IN SB-C::IR1-CONVERT-LET) #<SB-C::CTRAN 45 {1005FEEDC3}> #<SB-C::LVAR 46 {1005FEEDF3}> NIL)
 133: (SB-C::%PROCESSING-DECLS ((DECLARE (IGNORABLE #:WHAT12149))) (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:WHAT12149 {1005FEFB13}>) NIL #<SB-C::CTRAN 45 {1005FEEDC3}> #<SB-C::LVAR 46 {1005FEEDF3}> T #<CLOSURE (..
 134: (SB-C::IR1-CONVERT-LET #<SB-C::CTRAN 47 {1005FEEC63}> #<SB-C::CTRAN 45 {1005FEEDC3}> #<SB-C::LVAR 46 {1005FEEDF3}> (LET ((#1=#:WHAT12149 #:ARG2025)) (DECLARE (IGNORABLE #1#)) (BLOCK TRIVIA.LEVEL1.IMPL..
 135: (SB-C::IR1-CONVERT #<SB-C::CTRAN 47 {1005FEEC63}> #<SB-C::CTRAN 45 {1005FEEDC3}> #<SB-C::LVAR 46 {1005FEEDF3}> (LET ((#1=#:WHAT12149 #:ARG2025)) (DECLARE (IGNORABLE #1#)) (BLOCK TRIVIA.LEVEL1.IMPL::WH..
 136: (SB-C::IR1-CONVERT-GLOBAL-FUNCTOID #<SB-C::CTRAN 47 {1005FEEC63}> #<SB-C::CTRAN 45 {1005FEEDC3}> #<SB-C::LVAR 46 {1005FEEDF3}> (TRIVIA.LEVEL1:MATCH1 #:ARG2025 ((TRIVIA.LEVEL1:GUARD1 #:PAT2085 T) (TRIV..
 137: (SB-C::IR1-CONVERT #<SB-C::CTRAN 47 {1005FEEC63}> #<SB-C::CTRAN 45 {1005FEEDC3}> #<SB-C::LVAR 46 {1005FEEDF3}> (TRIVIA.LEVEL1:MATCH1 #:ARG2025 ((TRIVIA.LEVEL1:GUARD1 #:PAT2085 T) (TRIVIA.LEVEL1:MATCH1..
 138: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 47 {1005FEEC63}> #<SB-C::CTRAN 45 {1005FEEDC3}> #<SB-C::LVAR 46 {1005FEEDF3}> ((TRIVIA.LEVEL1:MATCH1 #:ARG2025 (# #) (# #))))
 139: (SB-C::%PROCESSING-DECLS NIL NIL NIL #<SB-C::CTRAN 45 {1005FEEDC3}> #<SB-C::LVAR 46 {1005FEEDF3}> NIL #<CLOSURE (LAMBDA (SB-C::NEXT SB-C::RESULT #:LEXENV1) :IN SB-C::IR1-TRANSLATE-LOCALLY) {1005FEEECB..
 140: (SB-C::IR1-CONVERT-LOCALLY #<SB-C::CTRAN 47 {1005FEEC63}> #<SB-C::CTRAN 45 {1005FEEDC3}> #<SB-C::LVAR 46 {1005FEEDF3}> (LOCALLY (TRIVIA.LEVEL1:MATCH1 #:ARG2025 (# #) (# #))))
 141: (SB-C::IR1-CONVERT #<SB-C::CTRAN 47 {1005FEEC63}> #<SB-C::CTRAN 45 {1005FEEDC3}> #<SB-C::LVAR 46 {1005FEEDF3}> (LOCALLY (TRIVIA.LEVEL1:MATCH1 #:ARG2025 (# #) (# #))))
 142: (SB-C::IR1-CONVERT-RETURN-FROM #<SB-C::CTRAN 47 {1005FEEC63}> #<SB-C::CTRAN 48 {1005FEE9B3}> #<unused argument> (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY (TRIVIA.LEVEL1:MATCH1 #:ARG2025 # #))))
 143: (SB-C::IR1-CONVERT #<SB-C::CTRAN 47 {1005FEEC63}> #<SB-C::CTRAN 48 {1005FEE9B3}> #<SB-C::LVAR 49 {1005FEE9E3}> (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY (TRIVIA.LEVEL1:MATCH1 #:ARG2025 # #))))
 144: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 47 {1005FEEC63}> #<SB-C::CTRAN 48 {1005FEE9B3}> #<SB-C::LVAR 49 {1005FEE9E3}> ((RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))))
 145: (SB-C::IR1-CONVERT-AUX-BINDINGS #<SB-C::CTRAN 47 {1005FEEC63}> #<SB-C::CTRAN 48 {1005FEE9B3}> #<SB-C::LVAR 49 {1005FEE9E3}> ((RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))) NIL NIL NIL)
 146: (SB-C::IR1-CONVERT-SPECIAL-BINDINGS #<SB-C::CTRAN 47 {1005FEEC63}> #<SB-C::CTRAN 48 {1005FEE9B3}> #<SB-C::LVAR 49 {1005FEE9E3}> ((RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))) NIL NIL NIL NIL)
 147: (SB-C::IR1-CONVERT-LAMBDA-BODY ((RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))) (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:PAT2084 {1005FEE4E3}>) :AUX-VARS NIL :AUX-VALS NIL :SOURCE-NAME SB-C::.ANONYMOU..
 148: ((LAMBDA (SB-C::NEXT SB-C::RESULT SB-C::POST-BINDING-LEXENV) :IN SB-C::IR1-CONVERT-LET) #<SB-C::CTRAN 50 {1005FEE043}> NIL NIL)
 149: (SB-C::%PROCESSING-DECLS ((DECLARE (IGNORABLE #:PAT2084))) (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:PAT2084 {1005FEE4E3}>) NIL #<SB-C::CTRAN 50 {1005FEE043}> NIL T #<CLOSURE (LAMBDA (SB-C::NEXT SB-C::RESUL..
 150: (SB-C::IR1-CONVERT-LET #<SB-C::CTRAN 51 {1005FEE1E3}> #<SB-C::CTRAN 50 {1005FEE043}> NIL (LET ((#1=#:PAT2084 #:WHAT12148)) (DECLARE (IGNORABLE #1#)) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))..
 151: (SB-C::IR1-CONVERT #<SB-C::CTRAN 51 {1005FEE1E3}> #<SB-C::CTRAN 50 {1005FEE043}> NIL (LET ((#1=#:PAT2084 #:WHAT12148)) (DECLARE (IGNORABLE #1#)) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))))
 152: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 51 {1005FEE1E3}> #<SB-C::CTRAN 50 {1005FEE043}> NIL ((LET (#) (DECLARE #) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE #))))
 153: (SB-C::IR1-CONVERT-BLOCK #<SB-C::CTRAN 52 {1005FEDE93}> #<SB-C::CTRAN 50 {1005FEE043}> NIL (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET (#) (DECLARE #) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE #))))
 154: (SB-C::IR1-CONVERT #<SB-C::CTRAN 52 {1005FEDE93}> #<SB-C::CTRAN 50 {1005FEE043}> NIL (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET (#) (DECLARE #) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE #))))
 155: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 52 {1005FEDE93}> #<SB-C::CTRAN 53 {1005FED9C3}> #<SB-C::LVAR 54 {1005FED9F3}> ((BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET # # #)) (LET (#) (DECLARE #) (RETURN-F..
 156: (SB-C::IR1-CONVERT-BLOCK #<SB-C::CTRAN 55 {1005FEDC73}> #<SB-C::CTRAN 53 {1005FED9C3}> #<SB-C::LVAR 54 {1005FED9F3}> (BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET # # #)) (LE..
 157: (SB-C::IR1-CONVERT #<SB-C::CTRAN 55 {1005FEDC73}> #<SB-C::CTRAN 53 {1005FED9C3}> #<SB-C::LVAR 54 {1005FED9F3}> (BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET # # #)) (LET (#) ..
 158: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 55 {1005FEDC73}> #<SB-C::CTRAN 53 {1005FED9C3}> #<SB-C::LVAR 54 {1005FED9F3}> ((BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE #) (LET # ..
 159: (SB-C::IR1-CONVERT-AUX-BINDINGS #<SB-C::CTRAN 55 {1005FEDC73}> #<SB-C::CTRAN 53 {1005FED9C3}> #<SB-C::LVAR 54 {1005FED9F3}> ((BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE #) (LET ..
 160: (SB-C::IR1-CONVERT-SPECIAL-BINDINGS #<SB-C::CTRAN 55 {1005FEDC73}> #<SB-C::CTRAN 53 {1005FED9C3}> #<SB-C::LVAR 54 {1005FED9F3}> ((BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE #) (..
 161: (SB-C::IR1-CONVERT-LAMBDA-BODY ((BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE #) (LET # # #))) (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:WHAT12148 {1005FED4F3}>) :AUX-VARS NIL :AUX-VALS..
 162: ((LAMBDA (SB-C::NEXT SB-C::RESULT SB-C::POST-BINDING-LEXENV) :IN SB-C::IR1-CONVERT-LET) #<SB-C::CTRAN 56 {1005FEC7A3}> #<SB-C::LVAR 57 {1005FEC7D3}> NIL)
 163: (SB-C::%PROCESSING-DECLS ((DECLARE (IGNORABLE #:WHAT12148))) (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:WHAT12148 {1005FED4F3}>) NIL #<SB-C::CTRAN 56 {1005FEC7A3}> #<SB-C::LVAR 57 {1005FEC7D3}> T #<CLOSURE (..
 164: (SB-C::IR1-CONVERT-LET #<SB-C::CTRAN 58 {1005FEC643}> #<SB-C::CTRAN 56 {1005FEC7A3}> #<SB-C::LVAR 57 {1005FEC7D3}> (LET ((#1=#:WHAT12148 #:ARG2024)) (DECLARE (IGNORABLE #1#)) (BLOCK TRIVIA.LEVEL1.IMPL..
 165: (SB-C::IR1-CONVERT #<SB-C::CTRAN 58 {1005FEC643}> #<SB-C::CTRAN 56 {1005FEC7A3}> #<SB-C::LVAR 57 {1005FEC7D3}> (LET ((#1=#:WHAT12148 #:ARG2024)) (DECLARE (IGNORABLE #1#)) (BLOCK TRIVIA.LEVEL1.IMPL::WH..
 166: (SB-C::IR1-CONVERT-GLOBAL-FUNCTOID #<SB-C::CTRAN 58 {1005FEC643}> #<SB-C::CTRAN 56 {1005FEC7A3}> #<SB-C::LVAR 57 {1005FEC7D3}> (TRIVIA.LEVEL1:MATCH1 #:ARG2024 ((TRIVIA.LEVEL1:GUARD1 #:PAT2084 T) (TRIV..
 167: (SB-C::IR1-CONVERT #<SB-C::CTRAN 58 {1005FEC643}> #<SB-C::CTRAN 56 {1005FEC7A3}> #<SB-C::LVAR 57 {1005FEC7D3}> (TRIVIA.LEVEL1:MATCH1 #:ARG2024 ((TRIVIA.LEVEL1:GUARD1 #:PAT2084 T) (TRIVIA.LEVEL1:MATCH1..
 168: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 58 {1005FEC643}> #<SB-C::CTRAN 56 {1005FEC7A3}> #<SB-C::LVAR 57 {1005FEC7D3}> ((TRIVIA.LEVEL1:MATCH1 #:ARG2024 (# #) (# #))))
 169: (SB-C::%PROCESSING-DECLS NIL NIL NIL #<SB-C::CTRAN 56 {1005FEC7A3}> #<SB-C::LVAR 57 {1005FEC7D3}> NIL #<CLOSURE (LAMBDA (SB-C::NEXT SB-C::RESULT #:LEXENV1) :IN SB-C::IR1-TRANSLATE-LOCALLY) {1005FEC8AB..
 170: (SB-C::IR1-CONVERT-LOCALLY #<SB-C::CTRAN 58 {1005FEC643}> #<SB-C::CTRAN 56 {1005FEC7A3}> #<SB-C::LVAR 57 {1005FEC7D3}> (LOCALLY (TRIVIA.LEVEL1:MATCH1 #:ARG2024 (# #) (# #))))
 171: (SB-C::IR1-CONVERT #<SB-C::CTRAN 58 {1005FEC643}> #<SB-C::CTRAN 56 {1005FEC7A3}> #<SB-C::LVAR 57 {1005FEC7D3}> (LOCALLY (TRIVIA.LEVEL1:MATCH1 #:ARG2024 (# #) (# #))))
 172: (SB-C::IR1-CONVERT-RETURN-FROM #<SB-C::CTRAN 58 {1005FEC643}> #<SB-C::CTRAN 59 {1005FEC393}> #<unused argument> (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY (TRIVIA.LEVEL1:MATCH1 #:ARG2024 # #))))
 173: (SB-C::IR1-CONVERT #<SB-C::CTRAN 58 {1005FEC643}> #<SB-C::CTRAN 59 {1005FEC393}> #<SB-C::LVAR 60 {1005FEC3C3}> (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY (TRIVIA.LEVEL1:MATCH1 #:ARG2024 # #))))
 174: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 58 {1005FEC643}> #<SB-C::CTRAN 59 {1005FEC393}> #<SB-C::LVAR 60 {1005FEC3C3}> ((RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))))
 175: (SB-C::IR1-CONVERT-AUX-BINDINGS #<SB-C::CTRAN 58 {1005FEC643}> #<SB-C::CTRAN 59 {1005FEC393}> #<SB-C::LVAR 60 {1005FEC3C3}> ((RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))) NIL NIL NIL)
 176: (SB-C::IR1-CONVERT-SPECIAL-BINDINGS #<SB-C::CTRAN 58 {1005FEC643}> #<SB-C::CTRAN 59 {1005FEC393}> #<SB-C::LVAR 60 {1005FEC3C3}> ((RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))) NIL NIL NIL NIL)
 177: (SB-C::IR1-CONVERT-LAMBDA-BODY ((RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))) (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:PAT2083 {1005FEBEC3}>) :AUX-VARS NIL :AUX-VALS NIL :SOURCE-NAME SB-C::.ANONYMOU..
 178: ((LAMBDA (SB-C::NEXT SB-C::RESULT SB-C::POST-BINDING-LEXENV) :IN SB-C::IR1-CONVERT-LET) #<SB-C::CTRAN 61 {1005FEBA23}> NIL NIL)
 179: (SB-C::%PROCESSING-DECLS ((DECLARE (IGNORABLE #:PAT2083))) (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:PAT2083 {1005FEBEC3}>) NIL #<SB-C::CTRAN 61 {1005FEBA23}> NIL T #<CLOSURE (LAMBDA (SB-C::NEXT SB-C::RESUL..
 180: (SB-C::IR1-CONVERT-LET #<SB-C::CTRAN 62 {1005FEBBC3}> #<SB-C::CTRAN 61 {1005FEBA23}> NIL (LET ((#1=#:PAT2083 #:WHAT12147)) (DECLARE (IGNORABLE #1#)) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))..
 181: (SB-C::IR1-CONVERT #<SB-C::CTRAN 62 {1005FEBBC3}> #<SB-C::CTRAN 61 {1005FEBA23}> NIL (LET ((#1=#:PAT2083 #:WHAT12147)) (DECLARE (IGNORABLE #1#)) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))))
 182: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 62 {1005FEBBC3}> #<SB-C::CTRAN 61 {1005FEBA23}> NIL ((LET (#) (DECLARE #) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE #))))
 183: (SB-C::IR1-CONVERT-BLOCK #<SB-C::CTRAN 63 {1005FEB873}> #<SB-C::CTRAN 61 {1005FEBA23}> NIL (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET (#) (DECLARE #) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE #))))
 184: (SB-C::IR1-CONVERT #<SB-C::CTRAN 63 {1005FEB873}> #<SB-C::CTRAN 61 {1005FEBA23}> NIL (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET (#) (DECLARE #) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE #))))
 185: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 63 {1005FEB873}> #<SB-C::CTRAN 64 {1005FEB3A3}> #<SB-C::LVAR 65 {1005FEB3D3}> ((BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET # # #)) (LET (#) (DECLARE #) (RETURN-F..
 186: (SB-C::IR1-CONVERT-BLOCK #<SB-C::CTRAN 66 {1005FEB653}> #<SB-C::CTRAN 64 {1005FEB3A3}> #<SB-C::LVAR 65 {1005FEB3D3}> (BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET # # #)) (LE..
 187: (SB-C::IR1-CONVERT #<SB-C::CTRAN 66 {1005FEB653}> #<SB-C::CTRAN 64 {1005FEB3A3}> #<SB-C::LVAR 65 {1005FEB3D3}> (BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET # # #)) (LET (#) ..
 188: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 66 {1005FEB653}> #<SB-C::CTRAN 64 {1005FEB3A3}> #<SB-C::LVAR 65 {1005FEB3D3}> ((BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE #) (LET # ..
 189: (SB-C::IR1-CONVERT-AUX-BINDINGS #<SB-C::CTRAN 66 {1005FEB653}> #<SB-C::CTRAN 64 {1005FEB3A3}> #<SB-C::LVAR 65 {1005FEB3D3}> ((BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE #) (LET ..
 190: (SB-C::IR1-CONVERT-SPECIAL-BINDINGS #<SB-C::CTRAN 66 {1005FEB653}> #<SB-C::CTRAN 64 {1005FEB3A3}> #<SB-C::LVAR 65 {1005FEB3D3}> ((BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE #) (..
 191: (SB-C::IR1-CONVERT-LAMBDA-BODY ((BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE #) (LET # # #))) (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:WHAT12147 {1005FEAED3}>) :AUX-VARS NIL :AUX-VALS..
 192: ((LAMBDA (SB-C::NEXT SB-C::RESULT SB-C::POST-BINDING-LEXENV) :IN SB-C::IR1-CONVERT-LET) #<SB-C::CTRAN 67 {1005FEA183}> #<SB-C::LVAR 68 {1005FEA1B3}> NIL)
 193: (SB-C::%PROCESSING-DECLS ((DECLARE (IGNORABLE #:WHAT12147))) (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:WHAT12147 {1005FEAED3}>) NIL #<SB-C::CTRAN 67 {1005FEA183}> #<SB-C::LVAR 68 {1005FEA1B3}> T #<CLOSURE (..
 194: (SB-C::IR1-CONVERT-LET #<SB-C::CTRAN 69 {1005FEA023}> #<SB-C::CTRAN 67 {1005FEA183}> #<SB-C::LVAR 68 {1005FEA1B3}> (LET ((#1=#:WHAT12147 #:ARG2023)) (DECLARE (IGNORABLE #1#)) (BLOCK TRIVIA.LEVEL1.IMPL..
 195: (SB-C::IR1-CONVERT #<SB-C::CTRAN 69 {1005FEA023}> #<SB-C::CTRAN 67 {1005FEA183}> #<SB-C::LVAR 68 {1005FEA1B3}> (LET ((#1=#:WHAT12147 #:ARG2023)) (DECLARE (IGNORABLE #1#)) (BLOCK TRIVIA.LEVEL1.IMPL::WH..
 196: (SB-C::IR1-CONVERT-GLOBAL-FUNCTOID #<SB-C::CTRAN 69 {1005FEA023}> #<SB-C::CTRAN 67 {1005FEA183}> #<SB-C::LVAR 68 {1005FEA1B3}> (TRIVIA.LEVEL1:MATCH1 #:ARG2023 ((TRIVIA.LEVEL1:GUARD1 #:PAT2083 T) (TRIV..
 197: (SB-C::IR1-CONVERT #<SB-C::CTRAN 69 {1005FEA023}> #<SB-C::CTRAN 67 {1005FEA183}> #<SB-C::LVAR 68 {1005FEA1B3}> (TRIVIA.LEVEL1:MATCH1 #:ARG2023 ((TRIVIA.LEVEL1:GUARD1 #:PAT2083 T) (TRIVIA.LEVEL1:MATCH1..
 198: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 69 {1005FEA023}> #<SB-C::CTRAN 67 {1005FEA183}> #<SB-C::LVAR 68 {1005FEA1B3}> ((TRIVIA.LEVEL1:MATCH1 #:ARG2023 (# #) (# #))))
 199: (SB-C::%PROCESSING-DECLS NIL NIL NIL #<SB-C::CTRAN 67 {1005FEA183}> #<SB-C::LVAR 68 {1005FEA1B3}> NIL #<CLOSURE (LAMBDA (SB-C::NEXT SB-C::RESULT #:LEXENV1) :IN SB-C::IR1-TRANSLATE-LOCALLY) {1005FEA28B..
 200: (SB-C::IR1-CONVERT-LOCALLY #<SB-C::CTRAN 69 {1005FEA023}> #<SB-C::CTRAN 67 {1005FEA183}> #<SB-C::LVAR 68 {1005FEA1B3}> (LOCALLY (TRIVIA.LEVEL1:MATCH1 #:ARG2023 (# #) (# #))))
 201: (SB-C::IR1-CONVERT #<SB-C::CTRAN 69 {1005FEA023}> #<SB-C::CTRAN 67 {1005FEA183}> #<SB-C::LVAR 68 {1005FEA1B3}> (LOCALLY (TRIVIA.LEVEL1:MATCH1 #:ARG2023 (# #) (# #))))
 202: (SB-C::IR1-CONVERT-RETURN-FROM #<SB-C::CTRAN 69 {1005FEA023}> #<SB-C::CTRAN 70 {1005FE9D73}> #<unused argument> (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY (TRIVIA.LEVEL1:MATCH1 #:ARG2023 # #))))
 203: (SB-C::IR1-CONVERT #<SB-C::CTRAN 69 {1005FEA023}> #<SB-C::CTRAN 70 {1005FE9D73}> #<SB-C::LVAR 71 {1005FE9DA3}> (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY (TRIVIA.LEVEL1:MATCH1 #:ARG2023 # #))))
 204: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 69 {1005FEA023}> #<SB-C::CTRAN 70 {1005FE9D73}> #<SB-C::LVAR 71 {1005FE9DA3}> ((RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))))
 205: (SB-C::IR1-CONVERT-AUX-BINDINGS #<SB-C::CTRAN 69 {1005FEA023}> #<SB-C::CTRAN 70 {1005FE9D73}> #<SB-C::LVAR 71 {1005FE9DA3}> ((RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))) NIL NIL NIL)
 206: (SB-C::IR1-CONVERT-SPECIAL-BINDINGS #<SB-C::CTRAN 69 {1005FEA023}> #<SB-C::CTRAN 70 {1005FE9D73}> #<SB-C::LVAR 71 {1005FE9DA3}> ((RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))) NIL NIL NIL NIL)
 207: (SB-C::IR1-CONVERT-LAMBDA-BODY ((RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))) (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:PAT2082 {1005FE98A3}>) :AUX-VARS NIL :AUX-VALS NIL :SOURCE-NAME SB-C::.ANONYMOU..
 208: ((LAMBDA (SB-C::NEXT SB-C::RESULT SB-C::POST-BINDING-LEXENV) :IN SB-C::IR1-CONVERT-LET) #<SB-C::CTRAN 72 {1005FE9403}> NIL NIL)
 209: (SB-C::%PROCESSING-DECLS ((DECLARE (IGNORABLE #:PAT2082))) (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:PAT2082 {1005FE98A3}>) NIL #<SB-C::CTRAN 72 {1005FE9403}> NIL T #<CLOSURE (LAMBDA (SB-C::NEXT SB-C::RESUL..
 210: (SB-C::IR1-CONVERT-LET #<SB-C::CTRAN 73 {1005FE95A3}> #<SB-C::CTRAN 72 {1005FE9403}> NIL (LET ((#1=#:PAT2082 #:WHAT12146)) (DECLARE (IGNORABLE #1#)) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))..
 211: (SB-C::IR1-CONVERT #<SB-C::CTRAN 73 {1005FE95A3}> #<SB-C::CTRAN 72 {1005FE9403}> NIL (LET ((#1=#:PAT2082 #:WHAT12146)) (DECLARE (IGNORABLE #1#)) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))))
 212: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 73 {1005FE95A3}> #<SB-C::CTRAN 72 {1005FE9403}> NIL ((LET (#) (DECLARE #) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE #))))
 213: (SB-C::IR1-CONVERT-BLOCK #<SB-C::CTRAN 74 {1005FE9253}> #<SB-C::CTRAN 72 {1005FE9403}> NIL (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET (#) (DECLARE #) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE #))))
 214: (SB-C::IR1-CONVERT #<SB-C::CTRAN 74 {1005FE9253}> #<SB-C::CTRAN 72 {1005FE9403}> NIL (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET (#) (DECLARE #) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE #))))
 215: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 74 {1005FE9253}> #<SB-C::CTRAN 75 {1005FE8D83}> #<SB-C::LVAR 76 {1005FE8DB3}> ((BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET # # #)) (LET (#) (DECLARE #) (RETURN-F..
 216: (SB-C::IR1-CONVERT-BLOCK #<SB-C::CTRAN 77 {1005FE9033}> #<SB-C::CTRAN 75 {1005FE8D83}> #<SB-C::LVAR 76 {1005FE8DB3}> (BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET # # #)) (LE..
 217: (SB-C::IR1-CONVERT #<SB-C::CTRAN 77 {1005FE9033}> #<SB-C::CTRAN 75 {1005FE8D83}> #<SB-C::LVAR 76 {1005FE8DB3}> (BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET # # #)) (LET (#) ..
 218: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 77 {1005FE9033}> #<SB-C::CTRAN 75 {1005FE8D83}> #<SB-C::LVAR 76 {1005FE8DB3}> ((BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE #) (LET # ..
 219: (SB-C::IR1-CONVERT-AUX-BINDINGS #<SB-C::CTRAN 77 {1005FE9033}> #<SB-C::CTRAN 75 {1005FE8D83}> #<SB-C::LVAR 76 {1005FE8DB3}> ((BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE #) (LET ..
 220: (SB-C::IR1-CONVERT-SPECIAL-BINDINGS #<SB-C::CTRAN 77 {1005FE9033}> #<SB-C::CTRAN 75 {1005FE8D83}> #<SB-C::LVAR 76 {1005FE8DB3}> ((BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE #) (..
 221: (SB-C::IR1-CONVERT-LAMBDA-BODY ((BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE #) (LET # # #))) (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:WHAT12146 {1005FE88B3}>) :AUX-VARS NIL :AUX-VALS..
 222: ((LAMBDA (SB-C::NEXT SB-C::RESULT SB-C::POST-BINDING-LEXENV) :IN SB-C::IR1-CONVERT-LET) #<SB-C::CTRAN 78 {1005FE7B63}> #<SB-C::LVAR 79 {1005FE7B93}> NIL)
 223: (SB-C::%PROCESSING-DECLS ((DECLARE (IGNORABLE #:WHAT12146))) (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:WHAT12146 {1005FE88B3}>) NIL #<SB-C::CTRAN 78 {1005FE7B63}> #<SB-C::LVAR 79 {1005FE7B93}> T #<CLOSURE (..
 224: (SB-C::IR1-CONVERT-LET #<SB-C::CTRAN 80 {1005FE7A03}> #<SB-C::CTRAN 78 {1005FE7B63}> #<SB-C::LVAR 79 {1005FE7B93}> (LET ((#1=#:WHAT12146 #:ARG2022)) (DECLARE (IGNORABLE #1#)) (BLOCK TRIVIA.LEVEL1.IMPL..
 225: (SB-C::IR1-CONVERT #<SB-C::CTRAN 80 {1005FE7A03}> #<SB-C::CTRAN 78 {1005FE7B63}> #<SB-C::LVAR 79 {1005FE7B93}> (LET ((#1=#:WHAT12146 #:ARG2022)) (DECLARE (IGNORABLE #1#)) (BLOCK TRIVIA.LEVEL1.IMPL::WH..
 226: (SB-C::IR1-CONVERT-GLOBAL-FUNCTOID #<SB-C::CTRAN 80 {1005FE7A03}> #<SB-C::CTRAN 78 {1005FE7B63}> #<SB-C::LVAR 79 {1005FE7B93}> (TRIVIA.LEVEL1:MATCH1 #:ARG2022 ((TRIVIA.LEVEL1:GUARD1 #:PAT2082 T) (TRIV..
 227: (SB-C::IR1-CONVERT #<SB-C::CTRAN 80 {1005FE7A03}> #<SB-C::CTRAN 78 {1005FE7B63}> #<SB-C::LVAR 79 {1005FE7B93}> (TRIVIA.LEVEL1:MATCH1 #:ARG2022 ((TRIVIA.LEVEL1:GUARD1 #:PAT2082 T) (TRIVIA.LEVEL1:MATCH1..
 228: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 80 {1005FE7A03}> #<SB-C::CTRAN 78 {1005FE7B63}> #<SB-C::LVAR 79 {1005FE7B93}> ((TRIVIA.LEVEL1:MATCH1 #:ARG2022 (# #) (# #))))
 229: (SB-C::%PROCESSING-DECLS NIL NIL NIL #<SB-C::CTRAN 78 {1005FE7B63}> #<SB-C::LVAR 79 {1005FE7B93}> NIL #<CLOSURE (LAMBDA (SB-C::NEXT SB-C::RESULT #:LEXENV1) :IN SB-C::IR1-TRANSLATE-LOCALLY) {1005FE7C6B..
 230: (SB-C::IR1-CONVERT-LOCALLY #<SB-C::CTRAN 80 {1005FE7A03}> #<SB-C::CTRAN 78 {1005FE7B63}> #<SB-C::LVAR 79 {1005FE7B93}> (LOCALLY (TRIVIA.LEVEL1:MATCH1 #:ARG2022 (# #) (# #))))
 231: (SB-C::IR1-CONVERT #<SB-C::CTRAN 80 {1005FE7A03}> #<SB-C::CTRAN 78 {1005FE7B63}> #<SB-C::LVAR 79 {1005FE7B93}> (LOCALLY (TRIVIA.LEVEL1:MATCH1 #:ARG2022 (# #) (# #))))
 232: (SB-C::IR1-CONVERT-RETURN-FROM #<SB-C::CTRAN 80 {1005FE7A03}> #<SB-C::CTRAN 81 {1005FE7753}> #<unused argument> (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY (TRIVIA.LEVEL1:MATCH1 #:ARG2022 # #))))
 233: (SB-C::IR1-CONVERT #<SB-C::CTRAN 80 {1005FE7A03}> #<SB-C::CTRAN 81 {1005FE7753}> #<SB-C::LVAR 82 {1005FE7783}> (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY (TRIVIA.LEVEL1:MATCH1 #:ARG2022 # #))))
 234: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 80 {1005FE7A03}> #<SB-C::CTRAN 81 {1005FE7753}> #<SB-C::LVAR 82 {1005FE7783}> ((RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))))
 235: (SB-C::IR1-CONVERT-AUX-BINDINGS #<SB-C::CTRAN 80 {1005FE7A03}> #<SB-C::CTRAN 81 {1005FE7753}> #<SB-C::LVAR 82 {1005FE7783}> ((RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))) NIL NIL NIL)
 236: (SB-C::IR1-CONVERT-SPECIAL-BINDINGS #<SB-C::CTRAN 80 {1005FE7A03}> #<SB-C::CTRAN 81 {1005FE7753}> #<SB-C::LVAR 82 {1005FE7783}> ((RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))) NIL NIL NIL NIL)
 237: (SB-C::IR1-CONVERT-LAMBDA-BODY ((RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))) (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:PAT2081 {1005FE7283}>) :AUX-VARS NIL :AUX-VALS NIL :SOURCE-NAME SB-C::.ANONYMOU..
 238: ((LAMBDA (SB-C::NEXT SB-C::RESULT SB-C::POST-BINDING-LEXENV) :IN SB-C::IR1-CONVERT-LET) #<SB-C::CTRAN 83 {1005FE6DE3}> NIL NIL)
 239: (SB-C::%PROCESSING-DECLS ((DECLARE (IGNORABLE #:PAT2081))) (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:PAT2081 {1005FE7283}>) NIL #<SB-C::CTRAN 83 {1005FE6DE3}> NIL T #<CLOSURE (LAMBDA (SB-C::NEXT SB-C::RESUL..
 240: (SB-C::IR1-CONVERT-LET #<SB-C::CTRAN 84 {1005FE6F83}> #<SB-C::CTRAN 83 {1005FE6DE3}> NIL (LET ((#1=#:PAT2081 #:WHAT12145)) (DECLARE (IGNORABLE #1#)) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))..
 241: (SB-C::IR1-CONVERT #<SB-C::CTRAN 84 {1005FE6F83}> #<SB-C::CTRAN 83 {1005FE6DE3}> NIL (LET ((#1=#:PAT2081 #:WHAT12145)) (DECLARE (IGNORABLE #1#)) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE (LOCALLY #))))
 242: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 84 {1005FE6F83}> #<SB-C::CTRAN 83 {1005FE6DE3}> NIL ((LET (#) (DECLARE #) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE #))))
 243: (SB-C::IR1-CONVERT-BLOCK #<SB-C::CTRAN 85 {1005FE6C33}> #<SB-C::CTRAN 83 {1005FE6DE3}> NIL (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET (#) (DECLARE #) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE #))))
 244: (SB-C::IR1-CONVERT #<SB-C::CTRAN 85 {1005FE6C33}> #<SB-C::CTRAN 83 {1005FE6DE3}> NIL (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET (#) (DECLARE #) (RETURN-FROM TRIVIA.LEVEL1.IMPL::WHOLE #))))
 245: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 85 {1005FE6C33}> #<SB-C::CTRAN 86 {1005FE6763}> #<SB-C::LVAR 87 {1005FE6793}> ((BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET # # #)) (LET (#) (DECLARE #) (RETURN-F..
 246: (SB-C::IR1-CONVERT-BLOCK #<SB-C::CTRAN 88 {1005FE6A13}> #<SB-C::CTRAN 86 {1005FE6763}> #<SB-C::LVAR 87 {1005FE6793}> (BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET # # #)) (LE..
 247: (SB-C::IR1-CONVERT #<SB-C::CTRAN 88 {1005FE6A13}> #<SB-C::CTRAN 86 {1005FE6763}> #<SB-C::LVAR 87 {1005FE6793}> (BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE (LET # # #)) (LET (#) ..
 248: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 88 {1005FE6A13}> #<SB-C::CTRAN 86 {1005FE6763}> #<SB-C::LVAR 87 {1005FE6793}> ((BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE #) (LET # ..
 249: (SB-C::IR1-CONVERT-AUX-BINDINGS #<SB-C::CTRAN 88 {1005FE6A13}> #<SB-C::CTRAN 86 {1005FE6763}> #<SB-C::LVAR 87 {1005FE6793}> ((BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE #) (LET ..
 250: (SB-C::IR1-CONVERT-SPECIAL-BINDINGS #<SB-C::CTRAN 88 {1005FE6A13}> #<SB-C::CTRAN 86 {1005FE6763}> #<SB-C::LVAR 87 {1005FE6793}> ((BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE #) (..
 251: (SB-C::IR1-CONVERT-LAMBDA-BODY ((BLOCK TRIVIA.LEVEL1.IMPL::WHOLE (BLOCK TRIVIA.LEVEL1.IMPL::CLAUSE #) (LET # # #))) (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:WHAT12145 {1005FE6293}>) :AUX-VARS NIL :AUX-VALS..
 252: ((LAMBDA (SB-C::NEXT SB-C::RESULT SB-C::POST-BINDING-LEXENV) :IN SB-C::IR1-CONVERT-LET) #<SB-C::CTRAN 89 {1005FE5543}> #<SB-C::LVAR 90 {1005FE5573}> NIL)
 253: (SB-C::%PROCESSING-DECLS ((DECLARE (IGNORABLE #:WHAT12145))) (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:WHAT12145 {1005FE6293}>) NIL #<SB-C::CTRAN 89 {1005FE5543}> #<SB-C::LVAR 90 {1005FE5573}> T #<CLOSURE (..
 254: (SB-C::IR1-CONVERT-LET #<SB-C::CTRAN 91 {1005FE53E3}> #<SB-C::CTRAN 89 {1005FE5543}> #<SB-C::LVAR 90 {1005FE5573}> (LET ((#1=#:WHAT12145 #:ARG2021)) (DECLARE (IGNORABLE #1#)) (BLOCK TRIVIA.LEVEL1.IMPL..
 255: (SB-C::IR1-CONVERT #<SB-C::CTRAN 91 {1005FE53E3}> #<SB-C::CTRAN 89 {1005FE5543}> #<SB-C::LVAR 90 {1005FE5573}> (LET ((#1=#:WHAT12145 #:ARG2021)) (DECLARE (IGNORABLE #1#)) (BLOCK TRIVIA.LEVEL1.IMPL::WH..
 256: (SB-C::IR1-CONVERT-GLOBAL-FUNCTOID #<SB-C::CTRAN 91 {1005FE53E3}> #<SB-C::CTRAN 89 {1005FE5543}> #<SB-C::LVAR 90 {1005FE5573}> (TRIVIA.LEVEL1:MATCH1 #:ARG2021 ((TRIVIA.LEVEL1:GUARD1 #:PAT2081 T) (TRIV..
 257: (SB-C::IR1-CONVERT #<SB-C::CTRAN 91 {1005FE53E3}> #<SB-C::CTRAN 89 {1005FE5543}> #<SB-C::LVAR 90 {1005FE5573}> (TRIVIA.LEVEL1:MATCH1 #:ARG2021 ((TRIVIA.LEVEL1:GUARD1 #:PAT2081 T) (TRIVIA.LEVEL1:MATCH1..
 258: (SB-C::IR1-CONVERT-PROGN-BODY #<SB-C::CTRAN 91 {1005FE53E3}> #<SB-C::CTRAN 89 {1005FE5543}> #<SB-C::LVAR 90 {1005FE5573}> ((TRIVIA.LEVEL1:MATCH1 #:ARG2021 (# #) (# #))))
 259: (SB-C::%PROCESSING-DECLS NIL NIL NIL #<SB-C::CTRAN 89 {1005FE5543}> #<SB-C::LVAR 90 {1005FE5573}> NIL #<CLOSURE (LAMBDA (SB-C::NEXT SB-C::RESULT #:LEXENV1) :IN SB-C::IR1-TRANSLATE-LOCALLY) {1005FE564B..

To reproduce the problem yourself, you could download my project from mthom/cl-psoatransrun and load it with asdf:load-system on SBCL.

guicho271828 commented 3 years ago

Macroexpansion process is not showing infinite recursion. I suspect the compiled result is simply too large for the compiler. For example, this shorter pattern works:

CL-USER> (match "2001/XMLSchema#integer"
           ((or "2001/XMLSchema#integer"
                "2001/XMLSchema#long")
            (print 1))
           ("2001/XMLSchema#double"
            (print 2))
           ("2001/XMLSchema#string"
            (print 3)))

1 

Perhaps I should make a substring-pattern or something like that which can be fused by the optimizer without much stress on to the compiler. The compiler is currently fusing the condition for each character, whose current code could be quite stack-heavy.

guicho271828 commented 3 years ago

oops, apparently fusing is failing... fusing the tests for the prefix "2001/...#" is blocked by different array lengths

guicho271828 commented 3 years ago

The apparent failure of fusing above is in part due to the lack of dependent type in common lisp type system. For example, in CL you can specify an array of length 5, but you cannot represent an array of length larger than 5.

Supporting this is up to debate, and the right point to improve is in https://github.com/guicho271828/type-i which Trivia depends on.

guicho271828 commented 3 years ago

well, it is probably nontrivial to implement and feels like it needs dependent types, which is currently out of my skill sets. It will not be supported unless I have time to study them, have time to implement them, and implement them.