I know, this is one of the confusing parts of JSR-303. Suppose you have constraints in the "Default" group:

```php
class Address
{
    /**
     * @Length(min=3, groups="Default")
     */
    private $street;
}
```

Then these two calls will be 100% equivalent:

```php
$violations = $validator->validate($address, "Default");
$violations = $validator->validate($address, "Address");
```

We say that "Address" is the *implicit group name* of those constraints, i.e. a group name that is equivalent to "Default".

Let's override the default group with a sequence:

```php
/**
 * @GroupSequence({"Address", "Strict"})
 */
class Address
{
    // ... rest stays the same ...
}
```

Now the calls are not equivalent anymore:

```php
// validates the group sequence
$violations = $validator->validate($address, "Default");

// validates the constraints in "Default"
$violations = $validator->validate($address, "Address");
```

That is also why you need to refer to the "Default" group as "<ClassName>" in the sequence. The following would create a recursion and is invalid (remember that "Default" === the group sequence now):

```php
/**
 * @GroupSequence({"Default", "Strict"})
 */
class Address
{
    // ... rest stays the same ...
}
```