package edu.neu.ccs.demeterf.demfgen;

import edu.neu.ccs.demeterf.demfgen.classes.*;
import edu.neu.ccs.demeterf.lib.List;
import edu.neu.ccs.demeterf.lib.Option;

public interface DFGTrav{
    //public <Ret> Ret traverse(Object o);
    
    public <Ret> Ret traverseList_CDFile_(List<CDFile> o);
    public <Ret> Ret traverseTypeDefParams(TypeDefParams o);
    public <Ret> Ret traverseTypeDefList(TypeDefList o);
    public <Ret> Ret traverseList_TypeDef_(List<TypeDef> o);
    public <Ret> Ret traverseList_FieldOrSyntax_(List<FieldOrSyntax> o);
    public <Ret> Ret traverseOption_List_TypeDef__(Option<List<TypeDef>> o);
    public <Ret> Ret traverseTypeDef(TypeDef o);
    public <Ret> Ret traverseIncludeList(IncludeList o);
}