TTag
(yyval.type) = new_type(TTag);
if((yyvsp[(3) - (3)].type)->type == TTag && (yyvsp[(2) - (3)].constant) == TE_IMPLICIT) {
if(oldtype->type == TTag && oldtype->tag.tagenv == TE_IMPLICIT) {
t = new_type (TTag);
$$ = new_type(TTag);
if($3->type == TTag && $2 == TE_IMPLICIT) {
if(oldtype->type == TTag && oldtype->tag.tagenv == TE_IMPLICIT) {
t = new_type (TTag);
case TTag: {
case TTag:
case TTag:
case TTag:
assert(m->type->type == TTag);
case TTag:{
case TTag:
case TTag: {
case TTag:
case TTag:
case TTag:
case TTag:{
while(type->type == TTag)
{ TTag, tag_symbol, 1 },
if (t->type == TTag)
while (t->type == TTag)
if (optional && t->type != TTag && t->type != TType)
case TTag: {