a stricter typespec