evaluation function prototype