The use case is from Boost Graph, but my question is a general one about Boost Concept Check Library: How to "restrict" a template class/function argument based on concepts.  

For instance, I want to overload  functions based on Graph or VertexListGraph or similar refinement.

template<class VertexListGraph,  XXX >
void  foo( VertexListGraph& g ) {...}

where XXX is somekind of SFINAE that leverages boost::VertexListGraphConcept.

Thanks,
Nick