public boolean CheckFunctionProtoType(String name, TypeInfo ret_type, ArrayList type_infos) {
        for (Object o : protos) {
            FunctionInfo fpinfo = (FunctionInfo) o;
            if (fpinfo._name.equals(name)) {
                if (fpinfo._ret_value == ret_type) {
                    if (type_infos.size() == fpinfo._typeinfo.size()) {
                        int i;
                        for (i = 0; i < type_infos.size(); ++i) {
                            TypeInfo a = (TypeInfo) type_infos.get(i);
                            TypeInfo b = (TypeInfo) type_infos.get(i);
                            
                            if (a != b) {
                                return false;
                            }
                        }
                        return true;                        
                    }
                }                
            }
        }
        return false;
    }