A DSEL for Studying and Explaining Causation

  title={A DSEL for Studying and Explaining Causation},
  author={Eric Walkingshaw and Martin Erwig},
We present a domain-specific embedded language (DSEL) in Haskell that supports the philosophical study and practical explanation of causation. The language provides constructs for modeling situations comprised of events and functions for reliably determining the complex causal relationships that emerge between these events. It enables the creation of visual explanations of these causal relationships and a means to systematically generate alternative, related scenarios, along with corresponding… 

A visual language for explaining probabilistic reasoning

A Domain Analysis of Data Structure and Algorithm Explanations in the Wild

This work performs a grounded theory analysis to generate a qualitative coding system for explanation artifacts collected online, and believes this structure can be reused as the semantic basis of a domain-specific language for creating interactive explanation artifacts.

A framework for relating, implementing and verifying argumentation models and their translations

A general framework for relating, implementing and formally verifying argumentation models and translations between them, drawing from dependent type theory and the Curry-Howard correspondence is constructed.

Haskell Gets Argumentative

This paper presents a formalisation of a particular computational argumentation framework, Carneades, as a case study with a view to investigate the extent to which functional languages are useful as a means to realising computational argueation frameworks and reason about them.

Semantics-Driven DSL Design

This work argues that early emphasis should be placed instead on the identification of general, compositional semantic domains, and that grounding the design process in semantics leads to languages with more consistent and more extensible syntax.

Explaining spreadsheets with spreadsheets (short paper)

The notion of explanation soundness is identified and it is shown that explanation sheets which conform to simple rules of formula coverage provide sound explanations.



Causal Reasoning with Neuron Diagrams

This paper formalizes the syntax and semantics of neuron diagrams and proposes a simple language extension that supports a clear, consistent, and comprehensive algorithm for automatic causal inference.

A DSL for Explaining Probabilistic Reasoning

A domain-specific language for explaining probabilistic reasoning is presented, based on a story-telling metaphor of explanations, and generic constructs for building stories out of events and obtaining explanations by applying stories to specific examples are identified.

The Intransitivity of Causation Revealed In Equations and Graphs

[Introduction] We live in exciting times. By 'we' I mean philosophers studying the nature of causation. The past decade or so has witnessed a flurry of philosophical activity aimed at cracking

Causes and Explanations: A Structural-Model Approach. Part I: Causes

We propose a new definition of actual causes, using structural equations to model counterfactuals. We show that the definition yields a plausible and elegant account of causation that handles well


As cause we often specify an event the occurrence of which first guaranteed that of the effect. This notion is explicated in a framework of branching worlds in Sections I to V. VI and VII point out

Structural equations and causation

Structural equations have become increasingly popular in recent years as tools for understanding causation. But standard structural equations approaches to causation face deep problems. The most

Causation and the Price of Transitivity

Revisant sa propore critique de la transitivite de la causation, l'A. se propose de resoudre le probleme de l'incompatibilite entre la transitivite et la these de la dependance contrefactuelle par la

Polymorphic type inference and abstract data types

This work shows how to add significant expressive power to statically typed functional languages with explicit type variables by incorporating first-class abstract types as an extension of algebraic data types and extends record types to allow abstract components.

Enquiry Concerning Human Understanding

Copyright ©2010–2015 All rights reserved. Jonathan Bennett [Brackets] enclose editorial explanations. Small ·dots· enclose material that has been added, but can be read as though it were part of the

Haskell 98 language and libraries : the revised report

The Haskell 98 Language: Lexical structure, Declarations and bindings, Predefined types and classes, and Libraries.