0
views
0
recommends
+1 Recommend
0 collections
    0
    shares
      • Record: found
      • Abstract: found
      • Article: found
      Is Open Access

      GADTs and Exhaustiveness: Looking for the Impossible

      Preprint
      ,

      Read this article at

      Bookmark
          There is no author summary for this article yet. Authors can add summaries to their articles on ScienceOpen to make them more accessible to a non-specialist audience.

          Abstract

          Sound exhaustiveness checking of pattern-matching is an essential feature of functional programming languages, and OCaml supports it for GADTs. However this check is incomplete, in that it may fail to detect that a pattern can match no concrete value. In this paper we show that this problem is actually undecidable, but that we can strengthen the exhaustiveness and redundancy checks so that they cover more practical cases. The new algorithm relies on a clever modification of type inference for patterns.

          Related collections

          Most cited references10

          • Record: found
          • Abstract: not found
          • Book Chapter: not found

          Dependently Typed Programming in Agda

          Ulf Norell (2009)
            Bookmark
            • Record: found
            • Abstract: not found
            • Conference Proceedings: not found

            Simple unification-based type inference for GADTs

              Bookmark
              • Record: found
              • Abstract: not found
              • Conference Proceedings: not found

              Optimizing pattern matching

                Bookmark

                Author and article information

                Journal
                2017-02-07
                Article
                10.4204/EPTCS.241.2
                1702.02281
                46a995ce-9e83-4857-9e57-6d19ef275b00

                http://arxiv.org/licenses/nonexclusive-distrib/1.0/

                History
                Custom metadata
                EPTCS 241, 2017, pp. 23-35
                In Proceedings ML/OCaml 2015, arXiv:1702.01872
                cs.PL
                EPTCS

                Programming languages
                Programming languages

                Comments

                Comment on this article