Уровень доступа по умолчанию - internal
, что означает, что он доступен только в текущем модуле. Я подозреваю, что вы получаете доступ к этому коду из другого модуля.
Ваш init использует уровень доступа по умолчанию:
init(start: T, end: T) {
Чтобы решить эту проблему, сделайте его общедоступным c:
public init(start: T, end: T) {