puzzle with pattern matching



Hi, I noticed the following puzzling behavior when I do pattern matching 
of a subscript construction and variables read from batch file.
Since I am new to maxima I am not sure if this is a bug or something 
(un)documented in the Byzantine manual.  It looks to me like the additional 
information inserted during batch loading for source level debugging is 
interfering with the pattern matcher:

(C106) batch ("matchmake.mac");

batching /tmp/matchmake.mac
(C107)                    DECLARE(myfeature, FEATURE)
(C108)                      DECLARE(she, myfeature)
(C109)             myfeatureP(x) := FEATUREP(x, 'myfeature)
(C110)          MATCHDECLARE([matchme, matchmetoo], myfeatureP)
(C111)                DEFRULE(mymatch, matchme, matchme)
(C112)           DEFRULE(mymatch2, matchme[matchmetoo], matchme)
(C113)                          heralias : she
(C114)                        heralias2 : she[she]
(C115) mymatch (heralias);
(D115)                                she
(C116) mymatch2 (heralias2);

*** - GET: 0 is not a symbol
1. Break [15]> :q
(C117) heralias2;
(D117)                              she
                                       she
(C118) mymatch2 (she[she]);
(D118)                                she
(C119) heralias2_alt : she[she];
(D119)                              she
                                       she
(C120) mymatch2 (heralias2_alt);
(D120)                                she
*** - Ctrl-C: User break
1. Break [50]> |$heralias|
|$she|
1. Break [50]> |$heralias2|
((|$she| SIMP ARRAY (0 "matchmake.mac" SRC)) |$she|)
1. Break [50]> |$heralias2_alt|
((|$she| SIMP ARRAY) |$she|)
1. Break [50]> 

Zheng