An implementation of Concepts for Chapel