Following code:

```
protocol SomeProtocol {
    typealias SomeType = Int // used typealias-assignment

    func someFunc(someVar: SomeType)
}

class SomeClass: SomeProtocol {
    func someFunc(someVar: SomeType) {
        print(someVar)
    }
}

```

gives compile-time error:

> 
> Use of undeclared type 'SomeType'
> 
> 
> 

Adding, say `typealias SomeType = Double`, to the `SomeClass` resolves the error.

The question is, what's the point of *typealias-assignment* part (which is optional btw) of protocol associated type declaration though?