
scan parval ( out>):
        "(", white stuff, scan parval ( out>),
        ")", white stuff, ->;
scan parval ( ParInt * i>):
        "ParInt", white stuff,
        scan inum (i>),  ->;
scan parval ( ParFlo * f>):
        "ParFlo", white stuff,
        scan fnum (f>),  ->;
scan parval ( ParStr * s>):
        "ParStr", white stuff,
        scan string (s>),  ->;
scan parval ( ParBool * b>):
        "ParBool", white stuff,
        scan bool (b>),  ->;
scan parval ( ParErr * msg>):
        "ParErr", layout,
        scan string (msg>).




scan val ( out>):
        "(", white stuff, scan val ( out>),
        ")", white stuff, ->;
scan val ( VSym * symorig * sym>):
        "VSym", white stuff,
        scan orig (symorig>),
        scan symbol (sym>),  ->;
scan val ( VLambda * lpar * lval>):
        "VLambda", white stuff,
        scan formcon (lpar>),
        scan val (lval>),  ->;
scan val ( VSigma * spar * sval>):
        "VSigma", white stuff,
        scan formcon (spar>),
        scan val (sval>),  ->;
scan val ( VApply * aval * apar>):
        "VApply", white stuff,
        scan val (aval>),
        scan val (apar>),  ->;
scan val ( "VValApply" * aval * apar>):
        "VValApply", white stuff,
        scan val (aval>),
        scan val (apar>),  ->;
scan val ( VWhere * wdefs * wval>):
        "VWhere", white stuff,
        scan def list (wdefs>),
        scan val (wval>),  ->;
scan val ( VList * l>):
        "VList", white stuff,
        scan val list (l>),  ->;
scan val ( VAppset * aps>):
        "VAppset", white stuff,
        scan val list (aps>),  ->;
scan val ( VAtom * atorig * atnm * atvpar * atcpar>):
        "VAtom", white stuff,
        scan orig (atorig>),
        scan symbol (atnm>),
        scan parval list (atvpar>),
        scan val (atcpar>),  ->;
scan val ( VSyn * synlist>):
        "VSyn", white stuff,
        scan val list (synlist>),  ->;
scan val ( VComp * vfirst * vrest>):
        "VComp", white stuff,
        scan val (vfirst>),
        scan val (vrest>),  ->;
scan val ( VInd * vexp * vind>):
        "VInd", white stuff,
        scan val (vexp>),
        scan inum (vind>),  ->;
scan val ( VSlice * vexps * vind1 * vind2>):
        "VSlice", white stuff, 
        scan val (vexps>),
        scan inum (vind1>),
        scan inum (vind2>), ->;
scan val ( VErr * msg>):
        "VErr", layout,
        scan string (msg>).
