
walk string (>i,> STRING * string," "+ quote+string+quote>) : .

walk bool (>i,> BOOL * T or F , " "+ T or F+" ">) : .

walk symbol (>i,>STRING*symbol," \""+symbol+quote>) : 
           excludes (>symbol,>TOP),->;
walk symbol (>i,>STRING*STRIP TOP DEF, " \""+STRIP TOP DEF+quote>) : .

STRIP TOP DEF :: @ strip top def.


strip top def (t>): ^!_! * (t>), end of sentence,->;
strip top def (s>):
   ^!_! * (t>), "_", more strip top def (>t, s>).
   
more strip top def (>t, t>): 
   !1234567890!*, end of sentence,->;
more strip top def (>t,t+"_"+STRIP TOP DEF>): ^!!* (STRIP TOP DEF>),->;
more strip top def (>strange,strange>):.

trace meta ds (>LIST*y,"["+yt+"]">):
       trace  meta ds (>y,yt>), ->;
trace meta ds (>TUPLE*y,"("+yt+")">):
       trace  meta ds (>y,yt>), ->;
trace meta ds (>STRING*y,"`"+yt+"'">):
       trace  meta ds (>y,yt>), ->;
trace meta ds (>BOOL*y,yt>):
       trace  meta ds (>y,yt>), ->;
trace meta ds (>F NUM*y,yt>):
       trace  meta ds (>y,yt>), ->;
trace meta ds (>I NUM*y,yt>):
       trace  meta ds (>y,yt>), ->;
trace meta ds (>x*y,xt+" "+yt>):
       trace  meta ds (>x,xt>),
       trace  meta ds (>y,yt>), ->;
trace meta ds (>x,x>):.

%TEX
\section{Constructors}
%
DefVal :: "DefVal".
DefCon :: "DefCon".
DefTyp :: "DefTyp".
DefAtom :: "DefAtom".
DefBasetype :: "DefBasetype".
DefErr :: "DefErr".
TypAtom :: "TypAtom".
TypFun :: "TypFun".
TypIn :: "TypIn".
TypOut :: "TypOut".
TypUni :: "TypUni".
TypNon :: "TypNon".
TypInt :: "TypInt".
TypFlo :: "TypFlo".
TypString :: "TypString".
TypBool :: "TypBool".
TypAppset :: "TypAppset".
TypPwr :: "TypPwr".
TypProd :: "TypProd".
TypStar :: "TypStar".
TypLocal :: "TypLocal".
TypSym :: "TypSym".
TypBind :: "TypBind".
TypBase :: "TypBase".
TypErr :: "TypErr".
FCList :: "FCList".
FCSym :: "FCSym".
FCComp :: "FCComp".
FCErr :: "FCErr".
VValApply :: "VValApply".
VSym :: "VSym".
VInt :: "VInt".
VFlo :: "VFlo".
VStr :: "VStr".
VBool :: "VBool".
VType :: "VType".
VComp :: "VComp".
VInd :: "VInd".
VSlice :: "VSlice".
VSysLambda :: "VSysLambda".
VSysSigma :: "VSysSigma".
VSysApply :: "VSysApply".
VWhere :: "VWhere".
VList :: "VList".
VAppset :: "VAppset".
VAtom :: "VAtom".
VSyn :: "VSyn".
VMacAlts :: "VMacAlts".
VMacLambda :: "VMacLambda".
VBuiltin :: "VBuiltin".
VApply :: "VApply".
VLambda :: "VLambda".
VSigma :: "VSigma".
VErr :: "VErr".
FpEmpty :: "FpEmpty".
FpList :: "FpList".
FpName :: "FpName".
FpStr :: "FpStr".
