Generative Type Abstraction and Type-level Computation (Extended Version)
نویسندگان
چکیده
Modular languages support generative type abstraction, ensuring that an abstract type is distinct from its representation, except inside the implementation where the two are synonymous. We show that this well-established feature is in tension with the non-parametric features of newer type systems, such as indexed type families and GADTs. In this paper we solve the problem by using kinds to distinguish between parametric and non-parametric contexts. The result is directly applicable to Haskell, which is rapidly developing support for type-level computation, but the same issues should arise whenever generativity and non-parametric features are combined.
منابع مشابه
Full Reduction in the Face of Absurdity
Core calculi that model the essence of computations use full reduction semantics to be built on solid grounds. Expressive type systems for these calculi may use propositions to refine the notion of types, which allows abstraction over possibly inconsistent hypotheses. To preserve type soundness, reduction must then be delayed until logical hypotheses on which the computation depends have been p...
متن کاملHigh-level programming language design for distributed computation Design rationale and language definition
This paper studies key issues for distributed programming in high-level languages. We discuss the design space and describe an experimental language, Acute, which we have defined and implemented. Acute extends an OCaml core to support distributed development, deployment, and execution, allowing typesafe interaction between separately-built programs. It is expressive enough to enable a wide vari...
متن کاملAcute: High-level programming language design for distributed computation : Design rationale and language definition
This paper studies key issues for distributed programming in high-level languages. We discuss the design space and describe an experimental language, Acute, which we have defined and implemented. Acute extends an OCaml core to support distributed development, deployment, and execution, allowing typesafe interaction between separately-built programs. It is expressive enough to enable a wide vari...
متن کاملA constructive type-theoretical Interpretation of the philosophical Methods of Abstraction and Instantiation
In the philosophical tradition, methodological procedures are often composed rather than simple: classical examples of such structures are the processes of analysis and synthesis and those of abstraction and instantiation. The latter couple is extremely relevant to logical knowledge also in modern formalization, representing the theoretical basis of basic notions such as singular and abstract, ...
متن کاملConstrained Type Families (extended version), preprint
We present an approach to support partiality in type-level computation without compromising expressiveness or type safety. Existing frameworks for type-level computation either require totality or implicitly assume it. For example, type families in Haskell provide a powerful, modular means of dening type-level computation. However, their current design implicitly assumes that type families are...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2010