Filters








55 Hits in 1.5 sec

GADTs meet subtyping [article]

Gabriel Scherer, Didier Rémy (INRIA Rocquencourt)
2013 arXiv   pre-print
While generalized algebraic datatypes (\GADTs) are now considered well-understood, adding them to a language with a notion of subtyping comes with a few surprises.  ...  Our work may be applied to real-world ML-like languages with explicit subtyping such as OCaml, or to languages with general subtyping constraints.  ...  This transformation does not work anymore with our current notion of GADTs in presence of subtyping.  ... 
arXiv:1301.2903v1 fatcat:fytxjm473fhdlc34dzkr7zoej4

GADT meet Subtyping [article]

Gabriel Scherer, Didier Rémy (INRIA Rocquencourt)
2012 arXiv   pre-print
While generalized abstract datatypes (GADT) are now considered well-understood, adding them to a language with a notion of subtyping comes with a few surprises.  ...  What does it mean for a GADT parameter to be covariant? The answer turns out to be quite subtle. It involves fine-grained properties of the subtyping relation that raise interesting design questions.  ...  way to combine GADT and subtyping.  ... 
arXiv:1210.5935v1 fatcat:wpma65kdgfbtbcfmdawygmpfb4

GADTs Meet Subtyping [chapter]

Gabriel Scherer, Didier Rémy
2013 Lecture Notes in Computer Science  
While generalized algebraic datatypes (GADTs) are now considered well-understood, adding them to a language with a notion of subtyping comes with a few surprises.  ...  What does it mean for a GADT parameter to be covariant? The answer turns out to be quite subtle. It involves fine-grained properties of the subtyping relation that raise interesting design questions.  ...  This transformation does not work anymore with our current notion of GADTs in presence of subtyping.  ... 
doi:10.1007/978-3-642-37036-6_30 fatcat:c6h2x3sqnjahpbt33lhq4ln2xa

System F with coercion constraints

Julien Cretin, Didier Rémy
2014 Proceedings of the Joint Meeting of the Twenty-Third EACSL Annual Conference on Computer Science Logic (CSL) and the Twenty-Ninth Annual ACM/IEEE Symposium on Logic in Computer Science (LICS) - CSL-LICS '14  
We also distinguish coherent coercions that are fully erasable from potentially incoherent coercions that suspend the evaluation-and enable the encoding of GADTs.  ...  system features that had previously been studied separately: type containment, bounded and instance-bounded polymorphism, which are already encodable with parametric coercion abstraction, and ML-style subtyping  ...  Encoding GADTs Incoherent polymorphism is necessary for features that contain some form of dynamic typing, such as GADTs.  ... 
doi:10.1145/2603088.2603128 dblp:conf/csl/CretinR14 fatcat:oqyxsxhuffbtzdmxrgnneaq53q

Functional Extensionality for Refinement Types [article]

Niki Vazou, Michael Greenberg
2021 arXiv   pre-print
While dependent type theories are typically consistent with functional extensionality axioms, refinement type systems with semantic subtyping treat naive phrasings of functional extensionality inconsistently  ...  We carefully crafted PEq's definition as a refined GADT ( §3) to meet our three criteria. 1. PEq is Type-Indexed. The type index a in PEq a {e } {e } makes it easy to track types explicitly.  ...  3) axiomatization of equality by refining of the GADT.  ... 
arXiv:2103.02177v1 fatcat:w6snrwwgdng5zddqtokoveelqm

Type-level Computation Using Narrowing in Ωmega

Tim Sheard
2007 Electronical Notes in Theoretical Computer Science  
In a language with subtyping, like Java, mutually consistent means that b is a subtype of c. In Ωmega, consistent means semantically equivalent.  ...  While it does not yet meet all of the goals we will list below, we have made it freely available (http://www.cs.pdx.edu/ ∼ sheard/Omega/index.html).  ... 
doi:10.1016/j.entcs.2006.10.040 fatcat:mjklly3zjfffhcmuxf7t2vayuq

OutsideIn(X) Modular type inference with local assumptions

DIMITRIOS VYTINIOTIS, SIMON PEYTON JONES, TOM SCHRIJVERS, MARTIN SULZMANN
2011 Journal of functional programming  
Going beyond the general framework, we also give a particular constraint solver for X = type classes + GADTs + type families, a non-trivial challenge in its own right.  ...  Advanced type system features, such as GADTs, type classes, and type families have proven to be invaluable language extensions for ensuring data invariants and program correctness among others.  ...  Because of rule dinstg our simplifier does not meet that definition.  ... 
doi:10.1017/s0956796811000098 fatcat:pykqzffshfbjtebsp4ahjzu47y

Optimal inference of fields in row-polymorphic records

Axel Simon
2013 Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation - PLDI '14  
These implications express that the subtyping constraints D2 hold if the current solution satisfies the subtyping constraints D1.  ...  This solution is incomplete and even rejects programs that do not use GADTs [27] .  ... 
doi:10.1145/2594291.2594313 dblp:conf/pldi/Simon14 fatcat:k4z3qhpvirb2loq2rsvmgwpz3i

Optimal inference of fields in row-polymorphic records

Axel Simon
2014 SIGPLAN notices  
These implications express that the subtyping constraints D2 hold if the current solution satisfies the subtyping constraints D1.  ...  This solution is incomplete and even rejects programs that do not use GADTs [27] .  ... 
doi:10.1145/2666356.2594313 fatcat:nlxrdaoeafcmdghefm2ae6aoti

PhD Abstracts

GRAHAM HUTTON
2018 Journal of functional programming  
Subtyping is induced by inheritance and quantifier instantiation.  ...  The most common approach, Constraint Handling Rules, falls short to describe modern features such as GADTs.  ... 
doi:10.1017/s0956796818000175 fatcat:lt6u6vlagfe7jgo73cm3nax4aq

Explicit Effect Subtyping [chapter]

Amr Hany Saleh, Georgios Karachalias, Matija Pretnar, Tom Schrijvers
2018 Lecture Notes in Computer Science  
It reifies appeals to subtyping in explicit casts with coercions that witness the subtyping proof, quickly exposing typing bugs in program transformations.  ...  Eff, an ML-like language with native support for handlers, has a subtyping-based effect system on which an effect-aware optimizing compiler could be built.  ...  GADTs [16] or type families [23] ).  ... 
doi:10.1007/978-3-319-89884-1_12 fatcat:3oyq4seri5btflslc6whehp7gu

HLIO: mixing static and dynamic typing for information-flow control in Haskell

Pablo Buiras, Dimitrios Vytiniotis, Alejandro Russo
2015 Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming - ICFP 2015  
Flanagan (Flanagan 2006) develops the concept of hybrid type checking for type systems capable of delaying subtyping checks until runtime.  ...  A lattice expression ℓ is either a primitive label Label , a join operation (⊔), or a meet operation (⊓).  ... 
doi:10.1145/2784731.2784758 dblp:conf/icfp/BuirasVR15 fatcat:nklzmk2vwvhu7afnyz5hzmc7lu

Decomposition Without Regret [article]

Weixin Zhang, Cristina David, Meng Wang
2022 arXiv   pre-print
For example, GADTs are known to have soundness issues in Scala [Giarrusso 2013 ]. What makes it even tricker is that type parameters may interact with subtyping.  ...  Subtyping. Subtyping is another feature that is often (mistakenly) considered as a object-oriented feature.  ... 
arXiv:2204.10411v1 fatcat:bmtsggflwbdffctj7lzdvrmxty

Polymorphism, subtyping, and type inference in MLsub

Stephen Dolan, Alan Mycroft
2017 Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages - POPL 2017  
We present a type system combining subtyping and ML-style parametric polymorphism. Unlike previous work, our system supports type inference and has compact principal types.  ...  Principal types are kept compact by type simplification, which exploits deep connections between subtyping and the algebra of regular languages. An implementation is available online.  ...  To preclude such examples, we demand that all subtyping relationships between the meet of two types and another type follow (VAR-λ) Γ x : τ Γ(x) = τ (VAR-∀) Γ x : τ [ τ / α] Γ(x) = ∀ α.τ (ABS) Γ, x :  ... 
doi:10.1145/3009837.3009882 fatcat:ps4tknkfkvfqrnyrfadohw5lcm

HLIO: mixing static and dynamic typing for information-flow control in Haskell

Pablo Buiras, Dimitrios Vytiniotis, Alejandro Russo
2015 SIGPLAN notices  
Flanagan (Flanagan 2006) develops the concept of hybrid type checking for type systems capable of delaying subtyping checks until runtime.  ...  A lattice expression ℓ is either a primitive label Label , a join operation (⊔), or a meet operation (⊓).  ... 
doi:10.1145/2858949.2784758 fatcat:boowlvmlnzdl7m4mrqcgm3sjky
« Previous Showing results 1 — 15 out of 55 results