¿Cómo delego una llamada a [0 .. <n] en swift?

Antecedentes

Por conveniencia, usé este alias:

typealias Deck = [Int]

Mis necesidades se están expandiendo, así que ahora he convertido mi código a:

class Deck
{
  var deck : [Int]
  // ... other members
}

Puedo delegar la mayoría de mis llamadas aself.deck, pero después de buscar en Google un poco, todavía tengo problemas para descubrir cómo delegar esta llamada:

let deck = Deck()
for i in deck[0..<5] { }   // <--- PROBLEMS HERE

Pregunta

¿Cómo implemento la delegación de esta convocatoria?

Creo que tiene algo que ver consubscript yrange (o tal vezsequence?), pero no tuve suerte buscando en Google la intersección de estos dos temas.

Respuestas a la pregunta(1)

Su respuesta a la pregunta