Un user-defined type guard est une fonction dont le type de retour est un type predicate (x is T). Quand il retourne true, le compilateur rétrécit l'argument à T dans le code appelant — vous permettant d'encapsuler des vérifications d'exécution personnalisées.
