Dependently-typed programming languages provide a powerful tool for establishing code correctness. However, it can be hard for newcomers to learn how to employ the advanced type system of such languages effectively. For simply-typed languages, several techniques have been devised to generate helpful error messages and suggestions for the programmer. We adapt these techniques to dependently-typed languages, to facilitate their more widespread adoption. In particular, we modify a higher-order unification algorithm that is used to resolve and type-check implicit arguments. We augment this algorithm with replay graphs, allowing for a global heuristic analysis of a unification problem-set, error-tolerant typing, which allows type-checking to con...
Gated attribute grammars and error-tolerant unification expand upon the usual views of attribute gr...
Customizable type error diagnosis has been proposed as a solution to achieve domain-specific type er...
Types express a program's meaning, and checking types ensures that a program has the intended meanin...
Dependently-typed programming languages provide a powerful tool for establishing code correctness. H...
Dependently typed programming languages provide a powerful tool for proving code correct. However, t...
Licentiate thesis, 2020 When using popular dependently-typed languages such as Agda, Idris or Coq t...
Although type systems do detect type errors in programs, they often produce uninformative error mes...
Producing precise and helpful error messages for type inference is\ud still a challenge for implemen...
We present a new way to generate type-error messages in a polymorphic, implicitly, and strongly type...
We present a simple type-checker for a language with dependent types and let expressions, with a sim...
Modern programming languages rely on advanced type systems that detect errors at compile-time. While...
Dependently typed programming languages provide a way to write programs, specifications, and correct...
Flaws in computer software are a fact of life, both in small and large-scale applications. Compile...
We present a new way to generate type-error messages in a poly-morphic, implicitly, and strongly typ...
This paper presents the design of ZOMBIE, a dependently-typed programming language that uses an adap...
Gated attribute grammars and error-tolerant unification expand upon the usual views of attribute gr...
Customizable type error diagnosis has been proposed as a solution to achieve domain-specific type er...
Types express a program's meaning, and checking types ensures that a program has the intended meanin...
Dependently-typed programming languages provide a powerful tool for establishing code correctness. H...
Dependently typed programming languages provide a powerful tool for proving code correct. However, t...
Licentiate thesis, 2020 When using popular dependently-typed languages such as Agda, Idris or Coq t...
Although type systems do detect type errors in programs, they often produce uninformative error mes...
Producing precise and helpful error messages for type inference is\ud still a challenge for implemen...
We present a new way to generate type-error messages in a polymorphic, implicitly, and strongly type...
We present a simple type-checker for a language with dependent types and let expressions, with a sim...
Modern programming languages rely on advanced type systems that detect errors at compile-time. While...
Dependently typed programming languages provide a way to write programs, specifications, and correct...
Flaws in computer software are a fact of life, both in small and large-scale applications. Compile...
We present a new way to generate type-error messages in a poly-morphic, implicitly, and strongly typ...
This paper presents the design of ZOMBIE, a dependently-typed programming language that uses an adap...
Gated attribute grammars and error-tolerant unification expand upon the usual views of attribute gr...
Customizable type error diagnosis has been proposed as a solution to achieve domain-specific type er...
Types express a program's meaning, and checking types ensures that a program has the intended meanin...