@@ -1,9 +1,14 @@
1−\subsection{Syntax Extensions}
1+\section{Syntax Extensions}
22
33\Idris{} supports the implementation of Embedded Domain Specific Languages (EDSLs) in
44several ways~\cite{res-dsl-padl12}. One way, as we have already seen, is through
55extending \texttt{do} notation. Another important way is to allow extension of the core
6−syntax. For example, we have seen \texttt{if...then...else} expressions, but these
6+syntax. In this section we describe two ways of extending the syntax: \texttt{syntax}
7+rules and \texttt{dsl} notation.
8+
9+\subsection{\texttt{syntax} rules}
10+
11+We have seen \texttt{if...then...else} expressions, but these
712are not built in --- instead, we define a function in the prelude\ldots
813
914\begin{SaveVerbatim}{boolelim}
@@ -87,3 +92,5 @@ term syntax "[" [x] "..." [y] "]" = MkInterval x y ?bounds_lemma
8792In terms, the syntax \texttt{[x...y]} will generate a proof obligation
8893\texttt{bounds\_lemma} (possibly renamed).
8994
95+\input{dsl}
96+