Transposing G to C♯: Expressivity of generalized algebraic data types in an object-oriented language

2018 
Abstract Generalized algebraic datatypes (GADTs) are a hot topic in the functional programming community. Previously we showed that object-oriented languages such as C ♯ and Java can express GADT declarations using Generics, but only some GADT programs. The addition of equational constraints on type parameters recovers expressivity. We now study this expressivity gap in more depth by extending an earlier translation from System F to C ♯ to handle GADTs. Our efforts reveal some surprising limitations of Generics and provide further justification for equational constraints.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    13
    References
    0
    Citations
    NaN
    KQI
    []