Guard Analysis and Safe Erasure Gradual Typing: a Type System for Elixir
<|reference_start|>Guard Analysis and Safe Erasure Gradual Typing: a Type System for Elixir: We define several techniques to extend gradual typing with semantic subtyping, specifically targeting dynamic languages. Focusing on the Elixir programming language, we provide the theoretical foundations for its type system. Our approach demonstrates how to achieve type soundness for gradual typing in existing dynamic languages without modifying their compilation, while still maintaining high precision. This is accomplished through the static detection of "strong functions", which leverage runtime checks inserted by the programmer or performed by the virtual machine, and through a fine-grained type analysis of pattern-matching expressions with guards.<|reference_end|>
@article{castagna2024guard,
    title={Guard Analysis and Safe Erasure Gradual Typing: a Type System for Elixir},
    author={Giuseppe Castagna and Guillaume Duboc},
    journal={arXiv preprint arXiv:2408.14345},
    year={2024},
    archivePrefix={arXiv},
    eprint={2408.14345},
    primaryClass={cs.PL}
}