/*
 * This file is part of the Cforall project
 *
 * $Id: GenPoly.h,v 1.4 2005/08/29 20:14:13 rcbilson Exp $
 *
 */

#include <map>
#include <string>
#include <iostream>
#include "SynTree/Declaration.h"

namespace GenPoly {

typedef std::map< std::string, TypeDecl::Kind > TyVarMap;

bool needsAdapter( FunctionType *adaptee, const TyVarMap &tyVars );
bool isPolyFun( FunctionType *fun, const TyVarMap &tyVars );
bool isPolyVal( Type *type, const TyVarMap &tyVars );
void printTyVarMap( std::ostream &os, const TyVarMap &tyVarMap );

} // namespace GenPoly
