2012
DOI: 10.1145/2398856.2364571
|View full text |Cite
|
Sign up to set email alerts
|

Deconstraining DSLs

Abstract: Strongly-typed functional languages provide a powerful framework for embedding Domain-Specific Languages (DSLs). However, building type-safe functions defined over an embedded DSL can introduce application-specific type constraints that end up being imposed on the DSL data types themselves. At best, these constraints are unwieldy and at worst they can limit the range of DSL expressions that can be built. We present a simple solution to this problem that allows application-specific constraints to be specified a… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1

Citation Types

0
2
0

Year Published

2013
2013
2013
2013

Publication Types

Select...
1

Relationship

0
1

Authors

Journals

citations
Cited by 1 publication
(2 citation statements)
references
References 23 publications
0
2
0
Order By: Relevance
“…Even if the computation is defined to be polymorphic in its constraint parameter, two copies of the computation have to be constructed, one for each interpretation. This is a more general problem that afflicts any data type that has a constraint parameter, but fortunately Jones et al [17] have recently developed a technique for addressing it. In this section we demonstrate the problem, and then show how Jones et al's technique can be applied to overcome it.…”
Section: Interpretations With Distinct Constraintsmentioning
confidence: 99%
See 1 more Smart Citation
“…Even if the computation is defined to be polymorphic in its constraint parameter, two copies of the computation have to be constructed, one for each interpretation. This is a more general problem that afflicts any data type that has a constraint parameter, but fortunately Jones et al [17] have recently developed a technique for addressing it. In this section we demonstrate the problem, and then show how Jones et al's technique can be applied to overcome it.…”
Section: Interpretations With Distinct Constraintsmentioning
confidence: 99%
“…showAndLower :: (Eq a, All Finite xs, All Show xs) ⇒ NM xs Vec a → (String, Vec a) showAndLower v = (showFin v , lowerVec v ) An explanation of the methods of the Elem and All classes, and how they are used, is beyond the scope of this paper, so we direct the reader to the original paper by Jones et al [17].…”
Section: A List Of Existential Typesmentioning
confidence: 99%