annotations and constraint solving