
scan fp ( out>):
   	"(", white stuff, ->,scan fp ( out>),
	")", white stuff;
scan fp ( FCComp * fpfirst * fprest>):
	"FpComp", white stuff,
	scan fp (fpfirst>),
	scan fp (fprest>), ->;
scan fp ( FpEmpty>):
	"FpEmpty", white stuff, ->;
scan fp ( FCList * fplist>):
	"FpList", white stuff,
	scan fp list (fplist>), ->;
scan fp ( FCSym * fpsym>):
	"FpName", white stuff,
	scan symbol (fpsym>), ->;
scan fp ( FpStr * fps>):
	"FpStr", white stuff,
	scan string (fps>), ->;
scan fp ( FpInt * fpi>):
	"FpInt", white stuff,
	scan inum (fpi>), ->;
scan fp ( FpFlo * fpf>):
	"FpFlo", white stuff,
	scan fnum (fpf>), ->;
scan fp ( FpBool * fpb>):
	"FpBool", white stuff,
	scan bool (fpb>).



scan orig ( out>):
   	"(", white stuff, ->,scan orig ( out>),
	")", white stuff;
scan orig(TUPLE * file * line>):
	scan string (file>),",",white stuff,
	scan inum (line>).

scan typ list  ( out>):
   	"(", white stuff, ->,scan typ list  ( out>),
	")", white stuff;
scan typ list ( LIST * scan typ els >):
	"[",white stuff, scan typ els (scan typ els >), "]",white stuff.

scan typ els (scan typ * scan typ els >):
	scan typ(scan typ>),->,
	more scan typ els (scan typ els >);
scan typ els (empty>):.

more scan typ els (scan typ * more scan typ els >):
	",",white stuff, ->,
	scan typ(scan typ>),
	more scan typ els (more scan typ els >);
more scan typ els (empty>):.


scan symbol list  ( out>):
   	"(", white stuff, ->,scan symbol list  ( out>),
	")", white stuff;
scan symbol list ( LIST * scan symbol els >):
	"[",white stuff, scan symbol els (scan symbol els >), "]",white stuff.

scan symbol els (scan symbol * scan symbol els >):
	scan symbol(scan symbol>),->,
	more scan symbol els (scan symbol els >);
scan symbol els (empty>):.

more scan symbol els (scan symbol * more scan symbol els >):
	",",white stuff, ->,
	scan symbol(scan symbol>),
	more scan symbol els (more scan symbol els >);
more scan symbol els (empty>):.


scan def list  (>level, out>):
   	"(", white stuff, ->,scan def list  (>level, out>),
	")", white stuff;
scan def list (>level,  LIST * scan def els >):
	"[",white stuff, scan def els (>level,scan def els >), "]",white stuff.

scan def els (>level,scan def * scan def els >):
	scan def(>level,scan def>),->,
	more scan def els (>level,scan def els >);
scan def els (>level,empty>):.

more scan def els (>level,scan def * more scan def els >):
	",",white stuff, ->,
	scan def(>level,scan def>),
	more scan def els (>level,more scan def els >);
more scan def els (>level,empty>):.


scan val list  ( out>):
   	"(", white stuff, ->,scan val list  ( out>),
	")", white stuff;
scan val list ( LIST * scan val els >):
	"[",white stuff, scan val els (scan val els >), "]",white stuff.

scan val els (scan val * scan val els >):
	scan val(scan val>),->,
	more scan val els (scan val els >);
scan val els (empty>):.
