Skip to content
Conal Elliott edited this page Aug 29, 2017 · 5 revisions

Welcome to the concat wiki!

Goal

Our goal is to be able to capture the design of things, other than computer programs, in Haskell.

Strategy

Our strategy involves altering the behavior of the GHC Haskell compiler, such that it broadens its notion of compilation target to include any appropriately constrained category, not just Functions. See Compiling to categories, and follow the links there.

Roadmap

The milestones marking our progress toward our goal include:

  1. Solving the constrained categories problem, so as to make the GHC type checker happy.
  2. Defining appropriately constrained Cartesian Closed Category (CCC) instances for all desired compilation targets.
  3. Develop a plug-in that allows GHC to target any one of our defined CCC instances, by making use of the equivalency between lambda abstractions and CCCs.

Possibilities

Once GHC has been liberated from its restricted view of compilation target, myriad uses of Haskell as a design capture medium emerge, such as:

Circuit Design and Timing Analysis

SMT Solvers

Machine Learning

Clone this wiki locally