• [^] # Re: Un peu faible

    Posté par (site web personnel) . En réponse au journal Les types fantômes. Évalué à 3.

    Ta remarque sur le fait qu'on paramétrise le type mais pas l'expression, est celle qui donne tout son sens.
    C'est d'autant plus intéressants qu'on s'en sort avec des types inhabités.
    Par exemple :

    data Serviettes
    data Torchons
    data Phantom a = P String
    a :: Phantom Serviettes
    a = P "Jean"
    b :: Phantom Torchons
    b = P "Paul"
    test = a == b
    
    

    nous donne l'erreur

    Couldn't match expected type `Serviettes'
    with actual type `Torchons'

    alors qu'il n'existe aucune expression de type Serviette ou Torchon.

    On a donc statiquement la garantie qu'on ne mélangera pas des serviettes avec des torchons.