• Corpus ID: 232307685

Functional Pearl: Witness Me - Constructive Arguments Must Be Guided with Concrete Witness

  title={Functional Pearl: Witness Me - Constructive Arguments Must Be Guided with Concrete Witness},
  author={Hiromi Ishii},
Beloved Curry–Howard correspondence tells that types are intuitionistic propositions, and in constructivemath, a proof of proposition can be seen as some kind of a construction, or witness, conveying the information of the proposition. We demonstrate how useful this point of view is as the guiding principle for developing dependently-typed programs. CCS Concepts: • Theory of computation → Constructive mathematics; Type theory; Logic and verification. 


Ghosts of departed proofs (functional pearl)
This paper introduces an API design concept called ``ghosts of departed proofs'' based on the following observation: sophisticated preconditions can be encoded in Haskell's type system with no run-time overhead, by using proofs that inhabit phantom type parameters attached to newtype wrappers.
Hasochism: the pleasure and pain of dependently typed haskell programming
This paper collate and classify techniques for programming with dependent types in Haskell, and shows how to exploit Haskell's constraint solver as a theorem prover, delivering code which, as Agda programmers, they envy.
Fun with Type Functions
A programmer's tour of so-calledtype families, a recent extension to Haskell that allows functions on types to be expressed as straightforwardly as functions on values, makes it easier for programmers to effectively extend the compiler by writing functional programs that execute during type checking.
Coherent explicit dictionary application for Haskell
A novel criterion based on GHC's type argument roles to decide when a dictionary application is safe with respect to global uniqueness of instances is introduced, which preserves coherence by detecting potential sources of incoherence, and proves it formally.
Giving Haskell a promotion
An experiment is described that enriches Haskell's kind system with two features promoted from its type system: data types and polymorphism.
Functional pearl: implicit configurations--or, type classes reflect the values of types
This work solves the configurations problem in Haskell using only stable and widely implemented language features like the type-class system, and can be regarded as a portable, coherent, and intuitive alternative to implicit parameters.
Dependently typed programming with singletons
The singletons library is presented, which generates the boilerplate code necessary for dependently typed programming using GHC and suggestions for future extensions to better support this style of programming are suggested.
Propositions as types
Connecting mathematical logic and computation, it ensures that some aspects of programming are absolute.
konn/demotion-paper. h ps://github.com/konn/demotion-paper
  • 2021
2012–2013. singletons. h p://hackage.haskell.org/package/singletons
  • 2013