diff --git a/paper/gtt.tex b/paper/gtt.tex
index 232ca3e8075719e5b103c34c91bcf475a1015797..626a7c0be8370f62e446a46ba303b0a7c3f4f5ba 100644
--- a/paper/gtt.tex
+++ b/paper/gtt.tex
@@ -1559,13 +1559,35 @@ interpreted as value types in call-by-push-value.
 \section{Theorems in Gradual Type Theory}
 
 In this section, we derive equational and inequational properties of
-Gradual Type Theory.  In what follows, ``unique'' means up to $\equidyn$.  
+Gradual Type Theory.
 
-\subsection{Basic structure of GTT}
+In what follows, ``unique'' means up to term equidynamism $\equidyn$.
 
-GTT inherits a lot of stuff from CPBV, for example [TODO: cite CPBV book]
+\subsection{Inclusion of CBPV}
 
-\begin{lemma}[Initial objects] \label{lem:initial}
+Because the GTT term equidynamism relation includes the congruence and
+$\beta\eta$ axioms of call-by-push-value, the types inherit the
+universal properties they have there~\cite{cpbv}.  We recall some
+relevant definitions and facts:
+
+\begin{definition}[Isomorphism] ~
+  \begin{enumerate}
+  \item We write $A \cong_v A'$ for a \emph{value isomorphism between
+    $A$ and $A'$}, which consists of two complex values $x : A \vdash V'
+    : A'$ and $x' : A' \vdash V : A$ such that $x : A \vdash V[V'/x']
+    \equidyn x : A$ and $x' : A' \vdash V'[V/x] \equidyn x' : A'$.
+  \item We write $\u B \cong_v \u B'$ for a \emph{computation
+    isomorphism between $\u B$ and $\u B'$}, which consists of two
+    complex stacls $\bullet : \u B \vdash S' : \u B'$ and $\bullet' : \u
+    B' \vdash S : \u B$ such that $\bullet : \u B \vdash S[S'/x']
+    \equidyn \bullet : \u B$ and $\bullet' : \u B' \vdash S'[S/\bullet]
+    \equidyn \bullet' : \u B'$.
+  \end{enumerate}
+\end{definition}
+
+\smallskip
+
+\begin{lemma}[Initial objects] ~ \label{lem:initial}
   \begin{enumerate}
   \item For all (value or computation) types $T$, there exists a unique
     expression $x : 0 \vdash E : T$.
@@ -1579,7 +1601,7 @@ GTT inherits a lot of stuff from CPBV, for example [TODO: cite CPBV book]
   \item $\u F 0$ is not provably \emph{strictly} initial among computation types.
   \end{enumerate}
 \end{lemma}
-  \begin{proof}
+\begin{proof}~
     \begin{enumerate}
     \item Take $E$ to be $x : 0 \vdash \abort{x} : T$.  Given any $E'$,
       we have $E \equidyn E'$ by the $\eta$ principle for $0$.
@@ -1626,7 +1648,7 @@ GTT inherits a lot of stuff from CPBV, for example [TODO: cite CPBV book]
     \end{enumerate}
 \end{proof}
   
-  \begin{lemma}[Terminal objects] \label{lem:terminal}
+  \begin{lemma}[Terminal objects] ~ \label{lem:terminal}
     \begin{enumerate}
     \item For any computation type $\u B$, there exists a unique stack
       $\bullet : \u B \vdash S : \top$.
@@ -1638,7 +1660,7 @@ GTT inherits a lot of stuff from CPBV, for example [TODO: cite CPBV book]
     \item $\top$ is not a strict terminal object.  
     \end{enumerate}
   \end{lemma}
-  \begin{proof}
+  \begin{proof} ~
     \begin{enumerate}
     \item Take $S = \{\}$.  The $\eta$ rule for $\top$, $\bullet : \top
       \vdash \bullet \equidyn \{\} : \top$, under the substitution of
@@ -1672,10 +1694,12 @@ GTT inherits a lot of stuff from CPBV, for example [TODO: cite CPBV book]
 
 \subsection{Derived Cast Rules}
 
-Some helpful derived rules:
+The cast universal properties in Figure~\ref{fig:gtt-term-dyn-axioms}
+imply a number of seemingly more general rules for reasoning about
+casts, which will be helpful for the proofs below:
 
 \begin{lemma}[Shifted Casts]
-  The following are derivable
+  The following are derivable:
   \begin{mathpar}
       \inferrule
     {\Gamma \pipe \Delta \vdash M : \u F A' \and A \ltdyn A'}
@@ -1688,7 +1712,7 @@ Some helpful derived rules:
 \end{lemma}
 \begin{proof}
   They are instances of the general upcast and downcast rules, using the
-  fact that $U$ and $\u F$ are congruences for type precision, so in the
+  fact that $U$ and $\u F$ are congruences for type dynamism, so in the
   first rule $\u F A \ltdyn \u F A'$, and in the second, $U \u B \ltdyn
   U \u B'$.
 \end{proof}
@@ -1785,10 +1809,12 @@ $\dncast{\u B}{\u B''}{\bullet''}\ltdyn {\bullet''} : \u B \ltdyn \u B''$,
 which is true by downcast left.
 \end{proof}
 
-\subsection{Type-generic Cast Properties}
+\subsection{Type-generic Properties of Casts}
 
-\begin{theorem}{Casts (de)composition} \label{thm:decomposition}
-  For any $A \ltdyn A' \ltdyn A''$ and $\u B \ltdyn \ltdyn \u B' \ltdyn \u B''$:
+The following results apply to casts in any types:
+
+\begin{theorem}[Casts (de)composition] \label{thm:decomposition}
+  For any $A \ltdyn A' \ltdyn A''$ and $\u B \ltdyn \u B' \ltdyn \u B''$:
   \begin{enumerate}
   \item $x : A \vdash \upcast A A x \equidyn x : A$
   \item $x : A \vdash \upcast A {A''}x \equidyn \upcast{A'}{A''}\upcast A{A'} x : A''$
@@ -1799,7 +1825,7 @@ which is true by downcast left.
   \end{enumerate}
 \end{theorem}
 
-\begin{proof}
+\begin{proof} ~
 \begin{enumerate}
 \item To show $x : A \vdash \upcast A A x \ltdyn x$, by upcast left, it
   suffices to show $x : A \vdash x \ltdyn x$, which is true by the
@@ -1853,7 +1879,7 @@ x : A \vdash \upcast{A}{\dynv}{x} \equidyn \upcast{A'}{\dynv}{\upcast{A}{A'}{x}}
   \item $x : U \u B \vdash x \ltdyn \thunk{(\dncast{B}{B'}{(\force{(\upcast{U \u B}{U \u B'}{x})})})} : U \u B$
   \end{enumerate}
 \end{theorem}
-\begin{proof}
+\begin{proof} ~
   \begin{enumerate}
   \item By $\eta$ for $F$ types, $\bullet' : \u F A' \vdash \bullet'
     \equidyn \bindXtoYinZ{\bullet'}{x'}{\ret{x'}} : \u F A'$, so it
@@ -1921,7 +1947,7 @@ x : A \vdash \upcast{A}{\dynv}{x} \equidyn \upcast{A'}{\dynv}{\upcast{A}{A'}{x}}
 \end{proof}
 
 In Figure~\ref{fig:gtt-term-dyn-axioms}, we asserted the retract axiom
-for casts into the dynamic type.  More generally, we have
+for casts into the dynamic type.  More generally:
 \begin{theorem}[Retract Property for General Casts]
   \begin{enumerate}
   \item
@@ -1984,39 +2010,42 @@ for casts into the dynamic type.  More generally, we have
 The specification of upcasts and downcasts by their right and left
 $\ltdyn$ rules defines them \emph{uniquely} up to $\equidyn$.
 %
-In category-theoretic terms this says that the upcasts and downcasts
-have a \emph{universal property}, and so we can show that something
-else is equivalent to the upcast or downcast by showing that it has
-the \emph{same} property.
+In category-theoretic terms this says that ``being an upcast/downcast''
+is a \emph{universal property}, and so we can show that something else
+is equivalent to the upcast or downcast by showing that it has the
+\emph{same} property.
 %
 
-\begin{theorem}[Specification for Casts is a Universal Property] \label{thm:casts-unique}
-  If $A \ltdyn A'$ and $x : A \vdash V_u[x] : A'$ is a value such that
-  the following judgments are provable:
+\begin{theorem}[Specification for Casts is a Universal Property]
+  ~ \label{thm:casts-unique}
+  \begin{enumerate}
+  \item 
+  If $A \ltdyn A'$ and $x : A \vdash V[x] : A'$ is a value such that
   \begin{mathpar}
     \inferrule
     {}
-    {x : A \ltdyn x' : A' \vdash V_u[x] \ltdyn x' : A'}
+    {x : A \ltdyn x' : A' \vdash V[x] \ltdyn x' : A'}
 
     \inferrule
     {}
-    {x_2 : A \ltdyn x : A \vdash x_2 \ltdyn V_u[x] : A \ltdyn A'}
+    {x_2 : A \ltdyn x : A \vdash x_2 \ltdyn V[x] : A \ltdyn A'}
   \end{mathpar}
+  then $x : A \vdash V \equidyn x : A$.
 
-  then we can prove $x : A \vdash V_u[x] \equidyn x : A$.
-
-  Similarly, if $\u B \ltdyn \u B'$ and $\bullet : \u B' \vdash S_d :
-  \u B$ is a stack such that the following are provable:
+  \item 
+  If $\u B \ltdyn \u B'$ and $\bullet : \u B' \vdash S :
+  \u B$ is a stack such that
   \begin{mathpar}
     \inferrule
     {}
-    {\bullet \ltdyn \bullet : \u B' \vdash S_d \ltdyn \bullet : \u B \ltdyn \u B'}
+    {\bullet \ltdyn \bullet : \u B' \vdash S \ltdyn \bullet : \u B \ltdyn \u B'}
 
     \inferrule
     {}
-    {\bullet \ltdyn \bullet : \u B \ltdyn \u B' \vdash \bullet \ltdyn S_d : \u B}
+    {\bullet \ltdyn \bullet : \u B \ltdyn \u B' \vdash \bullet \ltdyn S : \u B}
   \end{mathpar}
-  then we can prove $\bullet : \u B' \vdash S_d \equidyn \dncast{\u B}{\u B'}\bullet : \u B$
+  then $\bullet : \u B' \vdash S \equidyn \dncast{\u B}{\u B'}\bullet : \u B$
+  \end{enumerate}
 \end{theorem}
 \begin{proof}
   \begin{mathpar}
@@ -2252,7 +2281,7 @@ Dually, we have
 \end{proof}
 
 
-\begin{theorem}[Functorial Casts]
+\begin{theorem}[Functorial Casts] \label{thm:functorial-casts}
   \begin{small}
 \[
   \begin{array}{l}
@@ -3021,7 +3050,8 @@ upcasts and value downcasts as well.
 
 Some value downcasts and computation upcasts do exist, leading to a
 characterization of the casts for the monad/comonad of $F \dashv U$:
-\begin{theorem} Suppose $A \ltdyn A'$ and $\u B \ltdyn \u B'$.  
+\begin{theorem}[Monadic/Comonadic Casts] \label{thm:monadic-comonadic-casts}
+  Suppose $A \ltdyn A'$ and $\u B \ltdyn \u B'$.  
   \begin{enumerate}
   \item $\bullet : \u F A \vdash
     \bindXtoYinZ{\bullet}{x:A}{\ret{(\upcast{A}{A'}{x})}} : \u F A'$
@@ -3173,7 +3203,7 @@ characterization of the casts for the monad/comonad of $F \dashv U$:
   \]
 \end{definition}
 
-\begin{definition}[Ground type precision]
+\begin{definition}[Ground type dynamism]
   Let $A \ltdyn' A'$ and $\u B \ltdyn' \u B'$ be the relations defined
   by the rules in Figure~\ref{fig:gtt-type-dynamism-and-terms}
   with the axioms $A \ltdyn \dynv$ and $\u B \ltdyn \dync$ restricted to
@@ -3196,7 +3226,7 @@ transitivity, so $\u F A \ltdyn \u F \dynv$ by congruence, which is
 ground.
 \end{proof}
 
-\begin{lemma}[Alternative Characterization of Type Precision]
+\begin{lemma}[Alternative Characterization of Type Dynamism]
   $A \ltdyn A'$ iff $A \ltdyn' A'$ and $\u B \ltdyn \u B'$ iff $\u B
   \ltdyn' \u B'$
 \end{lemma}
@@ -3212,17 +3242,133 @@ G$, and then use transitivity with $G \ltdyn \dynv$ and $\u G \ltdyn
 \dync$.
 \end{proof}
 
+In GTT, we assert that all value upcasts and computation downcasts
+exist, but we can consider sub-theories of GTT where not all casts are
+assumed a priori to exist.  
+
+\begin{lemma}[Casts are Admissible] \label{lem:casts-admissible}
+Suppose we restrict the postulated casts to those between ground types
+and the dynamic type or between the shifts of those: we have values
+$x : G \vdash \upcast{G}{\dynv}{x} : \dynv$ and
+$\bullet : \u F \dynv \vdash \dncast{\u F G}{\u F \dynv}{x} : \u F \dynv$ and
+$\bullet : \dync \vdash \dncast{\u G}{\dync}{\bullet} : \dync$ and
+$x : U \u G \vdash \upcast{U \u G}{U \dync}{x} : U \dync$
+satisfying the universal
+properties of upcasts and downcasts respectively, but no other casts are
+stipulated to exist.  Then it is admissible that
+\begin{enumerate}
+\item for every type dynamism $A \ltdyn A'$
+  there is a definable upcast $\defupcast{A}{A'}$
+  and a definable downcast $\defdncast{\u F A}{\u F A'}$
+\item for every type
+dynamism $\u B \ltdyn \u B'$ there is a definable downcast
+$\defdncast{\u B}{\u B'}$ and a definavle upcast
+$\defdncast{U \u B}{U \u B'}$
+\end{enumerate}
+\end{lemma}
 
-
-\begin{theorem}{Upcasts are (Complex) Values, Downcasts are (Complex) Stacks}
-  If the tagging upcasts are complex values and untagging downcasts
-  are stacks, then all upcasts are complex values and all downcasts
-  are complex stacks.
-\end{theorem}
 \begin{proof}
+  By induction on type dynamism $A \ltdyn' A'$ and $\u B \ltdyn' \u B'$.
+
+  To streamline the exposition above, we stated
+  Theorem~\ref{thm:decomposition} and Theorem~\ref{thm:functorial-casts}
+  as showing that the ``definitions'' of each cast are equidynamic with
+  the postulated cast (e.g. $\upcast{A}{A''} \equidyn
+  \upcast{A'}{A''}{\upcast{A}{A'}}$).  However, the proofs given do not
+  rely on any axioms of GTT besides the universal properties of the
+  ``smaller'' casts used in the definition and the $\beta\eta$ rules for
+  the relevant types.  Thus, the same proofs can be read as showing that
+  the ``definitions'' of the casts have the correct universal property,
+  whether or not a cast with that universal property is a priori
+  asserted to exist.  So these proofs are essentially the inductive
+  steps here.
+
+  We show a few representative cases:
+
+  In the cases for $G \ltdyn \dynv$ or $\u G \ltdyn \dync$, we have
+  assumed appropriate casts $\upcast{G}{\dynv}$ and 
+  $\dncast{\u F G}{\u F \dynv}$ and 
+  $\dncast{\u G}{\dync}$ and
+  $\upcast{U \u G}{U \dync}$.
+  
+  In the case for identity $A \ltdyn A$, we need to show that there is
+  an upcast $\defupcast{A}{A}$ and a downcast $\defdncast{\u F A}{\u F A}$
+  The proof of Theorem~\ref{thm:decomposition} shows that the identity
+  value and stack have the correct universal property.  
+  
+  In the case where type dynamism was concluded by
+  transitivity between $A \ltdyn A'$ and $A' \ltdyn A''$, by the
+  inductive hypotheses we get upcasts $\defupcast{A}{A'}$ and
+  $\defupcast{A'}{A''}$, and the proof of
+   Theorem~\ref{thm:decomposition} shows that defining
+  $\defupcast{A}{A''}$ to be $\defupcast{A'}{A''}{\defupcast{A}{A'}}$
+  has the correct universal property.  For the downcast, we get
+  $\defdncast{\u F A}{\u F A'}$ and
+  $\defdncast{\u F A'}{\u F A''}$ by the inductive hypotheses, and the
+  proof of Theorem~\ref{thm:decomposition} shows that their composition
+  has the correct universal property.
   
+  In the case where type dynamism was concluded by the congruence rule
+  for $A_1 + A_2 \ltdyn A_1' + A_2'$ from $A_i \ltdyn A_i'$, we have
+  upcasts $\defupcast{A_i}{A_i'}$ and downcasts $\defdncast{\u F A_i}{\u F A_i'}$
+  by the inductive hypothesis, and the proof of
+  Theorem~\ref{thm:decomposition} shows that
+  \[
+  \begin{array}{c}
+    \bindXtoYinZ{\bullet}{(s : (A_1' + A_2'))}{}\\
+    {\caseofXthenYelseZ{s}
+           {x_1'.\bindXtoYinZ{(\defdncast{\u F A_1}{\u F A_1'}{(\ret{x_1'})})}{x_1}{\ret{(\inl {x_1})}}}
+           {x_2'.\bindXtoYinZ{(\defdncast{\u F A_2}{\u F A_2'}{(\ret{x_2'})})}{x_2}{\ret{(\inr {x_2})}}}}
+  \end{array}
+  \]
+  have the desired universal property.
+
+  In the case where type dynamism was concluded by the congruence rule
+  for $\u F A \ltdyn \u F A'$ from $A \ltdyn A'$, we obtain by induction
+  a \emph{upcast} $A \ltdyn A'$ and a downcast $\defdncast{\u F A}{\u F A'}$
+  We need a 
+  \emph{downcast} $\defdncast{\u F A}{F A'}$, which we have,
+  and an \emph{upcast} $\defdncast{U \u F A}{U \u F A'}$, which is
+  constructed as in Theorem~\ref{thm:monadic-comonadic-casts}.  
 \end{proof}
 
+The following theorem shows that there is no loss of generality in
+postulating that all upcasts are values and all downcasts are stacks,
+assuming that the basic upcasts and downcasts between ground types and
+the dynamic types are such (which they are in the model constructed
+below): \emph{any} monadic upcast/comonadic downcast is pure, in the
+sense that it is the (co)monadic lift of a value upcast/stack downcast.
+\begin{theorem}[Upcasts are Necessarily Values, Downcasts are Necessarily Stacks]
+  Suppose we postulate the casts between ground types and the dynamic
+  type (and the shifts thereof) as complex values/stacks as in
+  Lemma~\ref{lem:casts-admissible}: $x : G \vdash \upcast{G}{\dynv}{x} :
+  \dynv$ and $\bullet : \u F \dynv \vdash \dncast{\u F G}{\u F \dynv}{x}
+  : \u F \dynv$ and $\bullet : \dync \vdash \dncast{\u
+    G}{\dync}{\bullet} : \dync$ and $x : U \u G \vdash \upcast{U \u G}{U
+    \dync}{x} : U \dync$.
+  Suppose further that for every type precision $A \ltdyn A'$ we
+  postulate an upcast $\upcast{U \u F A}{U \u F A'}$,
+  and for every type precsion $\u B \ltdyn \u B'$ a downcast
+  $\dncast{\u F U \u B}{\u F U \u B'}$.
+  Then there exists a value upcast $\defupcast{A}{A'}$ and a stack
+  downcast $\defdncast{\u B}{\u B'}$ such that
+    \[
+    \begin{array}{c}
+    x : U \u F A \vdash \upcast{U \u F A}{U \u F A'}{x} \equidyn \thunk{ (\bindXtoYinZ{{\force x}}{x:A}{\ret{(\defupcast{A}{A'}{x})}})}\\
+    \bullet : \u F U \u B' \vdash \dncast{\u F U \u B}{\u F U \u B'}{\bullet} \equidyn
+    \bindXtoYinZ{\bullet}{x':U \u B'}{\ret{(\thunk{(\defdncast{\u B}{\u B'}{(\force x)})})}}
+    \end{array}
+    \]
+\end{theorem}
+\begin{proof}
+Lemma~\ref{lem:casts-admissible} constructs $\defupcast{A}{A'}$ and
+$\defdncast{\u B}{\u B'}$, so the proof of
+Theorem~\ref{thm:monadic-comonadic-casts} gives the result (as with
+other arguments in this section, it is only necessary to observe that
+the proof really shows that the definitions of the casts have the
+correct universal property, without relying on a cast with that
+universal property already existing).
+\end{proof}
 
 \subsection{Equidynamic Types are Isomorphic}
 
@@ -8249,6 +8395,8 @@ invoked with any finite number of arguments on the stack, a fairly
 accurate model of implementations of Scheme that pass multiple
 arguments on the stack.
 
+\bibliography{max}
+
 \appendix
 
 \section{Program Equivalences and Inequivalences in Previous Work}
diff --git a/paper/max.bib b/paper/max.bib
new file mode 100644
index 0000000000000000000000000000000000000000..f70e5d4218848590882de70b5adb40de0ab42905
--- /dev/null
+++ b/paper/max.bib
@@ -0,0 +1,977 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%                       String Definitions                         %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Publishing houses
+% %%%%%%%%%%%%%%%%%
+@STRING{ap =        "Academic Press" }
+@STRING{springer =  {Springer-Verlag} }
+@STRING{lncs =      "Lecture Notes in Computer Science" }
+@STRING{lnm =       "Lecture Notes in Mathematics" }
+@STRING{gtm =       "Graduate Texts in Mathematics" }
+@STRING{lfcs =      "Laboratory for Foundations of Computer Science,
+                    University of Edinburgh" }
+@STRING{mp =        "MIT Press" }
+@STRING{mitpress =  mp }
+%
+% Journals and magazines
+% %%%%%%%%%%%%%%%%%%%%%%
+@STRING{toplas =    "ACM Transactions on Programming Languages and Systems" }
+@STRING{jlp =       {Journal of Logic Programming} }
+@STRING{cacm =      "Communications of the {ACM}" }
+@STRING{jacm =      "Journal of the {ACM}" }
+@STRING{tcs =       "Theoretical Computer Science" }
+@STRING{jsl =       "Journal of Symbolic Logic" }
+@STRING{siamjc =    "SIAM Journal on Computing" }
+@STRING{mscs =      "Mathematical Structures in Computer Science" }
+@STRING{proc =      "Proceedings of the" }
+@STRING{ic =        "Information and Computation" }
+@STRING{iandcomp =  {Information and Computation} }
+@string{ifip =      "International Federation for Information Processing World Computer Congress (IFIP)"}
+@STRING{jfp =       "Journal of Functional Programming" }
+@STRING{lmcs =      "Logical Methods in Computer Science" }
+@string{hosc =      "Higher-Order and Symbolic Computation"}
+@STRING{cup =       "Cambridge University Press" }
+@STRING{mcgh =      "McGraw-Hill" }
+@STRING{nh =        "North Holland" }
+@STRING{sv =        "Springer-Verlag" }
+@STRING{aw =        "Addison-Wesley" }
+@STRING{ph =        "Prentice Hall" }
+@STRING{signot =    "SIGPLAN Notices"}
+@STRING{taoop =     "Carl A. Gunter and John C. Mitchell, editors, {\em
+                    Theoretical Aspects of Object-Oriented Programming:
+                    Types, Semantics, and Language Design}, MIT Press, 1994" }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                             Conferences                                %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+@STRING{popl =      "{ACM} {S}ymposium on {P}rinciples of {P}rogramming
+                     {L}anguages ({POPL})" }
+@STRING{popl73 =    popl # ", Boston, Massachusetts" }
+@STRING{popl75 =    popl # ", Palo Alto, California" }
+@STRING{popl76 =    popl # ", {A}tlanta, {G}eorgia" }
+@STRING{popl77 =    popl # ", Los Angeles, California" }
+@STRING{popl78 =    popl # ", Tucson, Arizona" }
+@STRING{popl79 =    popl # ", San Antonio, Texas" }
+@STRING{popl80 =    popl # ", Las Vegas, Nevada" }
+@STRING{popl81 =    popl # ", Williamsburg, Virginia" }
+@STRING{popl82 =    popl # ", Albuquerque, New Mexico" }
+@STRING{popl83 =    popl # ", Austin, Texas" }
+@STRING{popl84 =    popl # ", Salt Lake City, Utah" }
+@STRING{popl85 =    popl # ", New Orleans, Louisiana" }
+@STRING{popl86 =    popl # ", St.\ Petersburg Beach, Florida" }
+@STRING{popl87 =    popl # ", Munich, Germany" }
+@STRING{popl88 =    popl # ", San Diego, California" }
+@STRING{popl89 =    popl # ", Austin, Texas" }
+@STRING{popl90 =    popl # ", {S}an {F}rancisco, {C}alifornia" }
+@STRING{popl91 =    popl # ", Orlando, Florida" }
+@STRING{popl92 =    popl # ", Albuquerque, New Mexico" }
+@STRING{popl93 =    popl # ", Charleston, South Carolina" }
+@STRING{popl94 =    popl # ", {P}ortland, {O}regon" }
+@STRING{popl95 =    popl # ", San Francisco, California" }
+@STRING{popl96 =    popl # ", St.~Petersburg Beach, Florida" }
+@STRING{popl97 =    popl # ", Paris, France" }
+@STRING{popl98 =    popl # ", San Diego, California" }
+@STRING{popl99 =    popl # ", San Antonio, Texas" }
+@STRING{popl00 =    popl # ", Boston, Massachusetts" }
+@STRING{popl01 =    popl # ", London, England" }
+@STRING{popl02 =    popl # ", Portland, Oregon" }
+@STRING{popl03 =    popl # ", New Orleans, Louisiana" }
+@STRING{popl04 =    popl # ", Venice, Italy" }
+@STRING{popl05 =    popl # ", Long Beach, California" }
+@STRING{popl06 =    popl # ", Charleston, South Carolina" }
+@STRING{popl07 =    popl # ", Nice, France" }
+@STRING{popl08 =    popl # ", San Francisco, California" }
+@STRING{popl09 =    popl # ", Savannah, Georgia" }
+@STRING{popl10 =    popl # ", Madrid, Spain" }
+@STRING{popl11 =    popl # ", Austin, Texas" }
+@STRING{popl12 =    popl # ", Philadelphia, Pennsylvania" }
+@STRING{popl13 =    popl # ", Rome, Italy" }
+@STRING{popl14 =    popl # ", San Diego, California" }
+@STRING{popl15 =    popl # ", Mumbai, India" }
+@STRING{popl16 =    popl # ", St. Petersburg, Florida" }
+% ----
+@STRING{icfp =      "{I}nternational {C}onference on {F}unctional {P}rogramming
+                    ({ICFP})" }
+@STRING{icfp96 =    icfp # ", Philadelphia, Pennsylvania" }
+@STRING{icfp97 =    icfp # ", Amsterdam, The Netherlands" }
+@STRING{icfp98 =    icfp # ", Baltimore, Maryland, USA" }
+@STRING{icfp99 =    icfp # ", Paris, France" }
+@STRING{icfp00 =    icfp # ", Montreal, Canada" }
+@STRING{icfp01 =    icfp # ", Firenze, Italy" }
+@STRING{icfp02 =    icfp # ", Pittsburgh, Pennsylvania" }
+@STRING{icfp03 =    icfp # ", Uppsala, Sweden" }
+@STRING{icfp04 =    icfp # ", Snowbird, Utah" }
+@STRING{icfp05 =    icfp # ", Tallinn, Estonia" }
+@STRING{icfp06 =    icfp # ", Portand, Oregon" }
+@STRING{icfp07 =    icfp # ", Freiburg, Germany" }
+@STRING{icfp08 =    icfp # ", Victoria, British Columbia, Canada" }
+@STRING{icfp09 =    icfp # ", Edinburgh, Scotland" }
+@STRING{icfp10 =    icfp # ", Baltimore, Maryland" }
+@STRING{icfp11 =    icfp # ", Tokyo, Japan" }
+@STRING{icfp12 =    icfp # ", Copenhagen, Denmark" }
+@STRING{icfp13 =    icfp # ", Boston, Massachusetts" }
+@STRING{icfp14 =    icfp # ", Gothenburg, Sweden" }
+@STRING{icfp15 =    icfp # ", Vancouver, British Columbia, Canada" }
+@STRING{icfp16 =    icfp # ", Nara, Japan" }
+@STRING{icfp17 =    icfp # ", Oxford, United Kingdom" }
+
+% ----
+@STRING{oopsla =    "{ACM} {S}ymposium on {O}bject {O}riented {P}rogramming:
+                    {S}ystems, {L}anguages, and {A}pplications ({OOPSLA})" }
+@STRING{oopsla86 =  oopsla # ", Portland, Oregon" }
+@STRING{oopsla89 =  oopsla }
+@STRING{oopsla98 =  oopsla # ", Vancouver, British Columbia" }
+@STRING{oopsla08 =  oopsla # ", Nashville, Tennessee" }
+% ----
+@STRING{lics =      "IEEE Symposium on Logic in Computer Science (LICS)" }
+@STRING{lics91 =    lics # ", Amsterdam, The Netherlands" }
+@STRING{lics92 =    lics # ", Santa Cruz, California" }
+@STRING{lics93 =    lics # ", Montreal, Canada" }
+@STRING{lics94 =    lics # ", Paris, France" }
+@STRING{lics95 =    lics # ", San Diego, California" }
+@STRING{lics96 =    lics # ", New Brunswick, New Jersey" }
+@STRING{lics97 =    lics # ", Warsaw, Poland" }}
+@STRING{lics98 =    lics # ", Indianapolis, Indiana" }
+@STRING{lics99 =    lics # ", Trento, Italy" }
+@STRING{lics00 =    lics # ", Santa Barbara, California" }
+@STRING{lics01 =    lics # ", Boston, Massachusetts" }
+@STRING{lics02 =    lics # ", Copenhagen, Denmark" }
+@STRING{lics03 =    lics # ", Ottawa, Canada" }
+@STRING{lics04 =    lics # ", Turku, Finland" }
+@STRING{lics05 =    lics # ", Chicago, Illinois" }
+@STRING{lics06 =    lics # ", Seattle, Washington" }
+@STRING{lics07 =    lics # ", Wroclaw, Poland" }
+@STRING{lics08 =    lics # ", Pittsburgh, Pennsylvania" }
+@STRING{lics09 =    lics # ", Los Angeles, California" }
+@STRING{lics10 =    lics # ", Edinburgh, Scotland" }
+@STRING{lics11 =    lics # ", Toronto, Canada" }
+@STRING{lics12 =    lics # ", Dubrovnik, Croatia" }
+@STRING{lics13 =    lics # ", New Orleans, Louisiana" }
+@STRING{lics14 =    lics # ", Vienna, Austria" }
+% ----
+@STRING{pldi =      "{ACM SIGPLAN Conference on Programming Language Design
+                    and Implementation (PLDI)}" }
+@STRING{pldi88 =    pldi # ", {A}tlanta, {G}eorgia" }
+@STRING{pldi89 =    pldi # ", Portland, Oregon" }
+@STRING{pldi90 =    pldi # ", White Plains, New York" }
+@STRING{pldi91 =    pldi # ", Toronto, Ontario" }
+@STRING{pldi92 =    pldi # ", San Francisco, California" }
+@STRING{pldi93 =    pldi # ", Albuquerque, New Mexico" }
+@STRING{pldi94 =    pldi # ", Orlando, Florida" }
+@STRING{pldi95 =    pldi # ", La Jolla, California" }
+@STRING{pldi96 =    pldi # ", Philadephia, Pennsylvania" }
+@STRING{pldi97 =    pldi # ", Las Vegas, Nevada" }
+@STRING{pldi98 =    pldi # ", {M}ontreal, {C}anada" }
+@STRING{pldi99 =    pldi # ", {A}tlanta, {G}eorgia" }
+@STRING{pldi00 =    pldi # ", Vancouver, British Columbia, Canada" }
+@STRING{pldi01 =    pldi # ", Snowbird, Utah" }
+@STRING{pldi02 =    pldi # ", Berlin, Germany" }
+@STRING{pldi03 =    pldi # ", San Diego, California" }
+@STRING{pldi04 =    pldi # ", Washington, DC" }
+@STRING{pldi05 =    pldi # ", Chicago, Illinois" }
+@STRING{pldi06 =    pldi # ", Ottawa, Canada" }
+@STRING{pldi07 =    pldi # ", San Diego, California" }
+@STRING{pldi08 =    pldi # ", Tucson, Arizona" }
+@STRING{pldi09 =    pldi # ", Dublin, Ireland" }
+@STRING{pldi10 =    pldi # ", Toronto, Canada" }
+@STRING{pldi11 =    pldi # ", San Jose, California" }
+@STRING{pldi12 =    pldi # ", Beijing, China" }
+@STRING{pldi13 =    pldi # ", Seattle, Washington" }
+@STRING{pldi14 =    pldi # ", Edinburgh, Scotland" }
+% ----
+@STRING{lfp =       "ACM Symposium on Lisp and Functional Programming (LFP)" }
+@STRING{lfp84 =     lfp # ", Austin, Texas" }
+@STRING{lfp88 =     lfp # ", Snowbird, Utah" }
+@STRING{lfp90 =     lfp }
+@STRING{lfp92 =     lfp }
+% ----
+@STRING{fpca =      "ACM Symposium on Functional Programming Languages and
+                    Computer Architecture (FPCA)" }
+@STRING{fpca89 =    fpca }
+@STRING{fpca93 =    fpca }
+% ----
+@STRING{sosp=" {ACM} {S}ymposium on {O}perating {S}ystems {P}rinciples ({SOSP})"}
+% ----
+@STRING{fool =      "Workshop on Foundations of Object-Oriented Languages
+                    (FOOL), informal proceedings" }
+@STRING{tlca =      "Typed Lambda Calculi and Applications (TLCA)" }
+@STRING{tlca93 =    tlca # ", Utrecht, The Netherlands" }
+@STRING{tlca95 =    tlca # ", Edinburgh, UK" }
+@STRING{tlca97 =    tlca # ", Nancy, France" }
+@STRING{tlca99 =    tlca # ", L'Aquila, Italy" }
+@STRING{tlca01 =    tlca # ", Krakow, Poland" }
+@STRING{tlca03 =    tlca # ", Valencia, Spain" }
+@STRING{tlca05 =    tlca # ", Nara, Japan" }
+@STRING{tlca07 =    tlca # ", Paris, France" }
+@STRING{tlca09 =    tlca # ", Brasilia, Brazil" }
+@STRING{tlca11 =    tlca # ", Novi Sad, Serbia" }
+@STRING{tlca13 =    tlca # ", Eindhoven, The Netherlands" }
+
+@string{cav =       "Conference on Computer Aided Verification (CAV)"}
+@string{ccs =       "ACM Conference on Computer and Communication Security (CCS)"}
+@string{oakland =   "{IEEE} Symposium on Security and Privacy"}
+@string{dls =       "Dynamic Languages Symposium (DLS)"}
+@STRING{esop =      "European Symposium on Programming (ESOP)" }
+@STRING{esop92 =    esop # ", Rennes, France" }
+@STRING{ecoop =     "{E}uropean {C}onference on {O}bject-{O}riented
+                    {P}rogramming ({ECOOP})" }
+@STRING{ecoop97 =   ecoop }
+@STRING{ecoop02 =   ecoop # ", Malaga, Spain" }
+@STRING{flops =     "International Symposium on Functional and Logic Programming (FLOPS)" }
+@STRING{flops02 =   flops # ", Aizu, Japan" }
+@string{icalp =     "International Colloquium on Automata, Languages and Programming (ICALP)"}
+@string{plpv =      "Programming Languages meets Program Verification (PLPV)"}
+@STRING{post =      "Principles of Security and Trust (POST)" }
+@string{ppdp =      "ACM Conference on Principles and Practice of Declarative Programming (PPDP)"}
+@string{scheme =    "Scheme and Functional Programming Workshop (Scheme)"}
+@string{stop =      "Workshop on Script-to-Program Evolution (STOP)"}
+@string{tldi =      "ACM SIGPLAN Workshop on Types in Language Design and Implementation (TLDI)"}
+@STRING{tacs =      "Theoretical Aspects of Computer Software (TACS)" }
+@STRING{tacs01 =    tacs # ", Sendai, Japan" }
+@string{tfp =       "Trends in Functional Programming (TFP)"}
+@STRING{webdb =     {International Workshop on the Web and Databases
+                    (WebDB)} }
+@STRING{langsec = "Language-theoretic Security IEEE Security and Privacy Workshop (LangSec)"}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+@incollection{scott71,
+  title={Continuous lattices},
+  author={Scott, Dana},
+  booktitle={Toposes, algebraic geometry and logic},
+  pages={97--136},
+  year={1972},
+}
+
+@article{scott76,
+  title={Data types as lattices},
+  author={Scott, Dana},
+  journal={Siam Journal on computing},
+  volume={5},
+  number={3},
+  pages={522--587},
+  year={1976},
+  publisher={SIAM}
+}
+
+@inproceedings{wadler-findler09,
+ author = "Philip Wadler and Robert Bruce Findler",
+ title = "Well-typed programs can't be blamed",
+ booktitle = esop,
+ year = 2009,
+ month = mar,
+ pages = "1--16",
+ location = "York, UK"
+}
+
+@inproceedings{tobin-hochstadt06,
+ author = "Sam Tobin-Hochstadt and Matthias Felleisen",
+ title = "Interlanguage Migration: From Scripts to Programs",
+ booktitle = dls,
+ month = oct,
+ pages = "964--974",
+ year = 2006,
+}
+
+@inproceedings{tobin-hochstadt08,
+ author = {Sam Tobin-Hochstadt and Matthias Felleisen},
+ title = {The Design and Implementation of Typed Scheme},
+ booktitle = popl08,
+ year = {2008}}
+
+@inproceedings{siek-taha06,
+ author = "Jeremy G. Siek and Walid Taha",
+ title = "Gradual Typing for Functional Languages",
+ booktitle = scheme,
+ month = sep,
+ pages = "81--92",
+ year = 2006
+}
+
+@inproceedings{scott80,
+  author="Dana S. Scott",
+  booktitle="To H.B. Curry: Essays on Combinatory Logic, Lambda Calculus and Formalism",
+  editor="J.P. Seldin and J.R. Hindley",
+  title="Relating Theories of the Lambda-Calculus",
+  year=1980,
+  pages="403--450"}
+
+@inproceedings{findler-felleisen02,
+author = {Robert Bruce Findler and Matthias Felleisen},
+title = {Contracts for higher-order functions},
+booktitle = icfp,
+year = {2002},
+month = sep,
+pages = {48--59}
+}
+
+@inproceedings{findler-blume06,
+ author = "Robby Findler and Matthias Blume",
+ title = "Contracts as Pairs of Projections",
+ booktitle = flops,
+ month = apr,
+ year = 2006,
+}
+@inproceedings{siek-wadler10,
+  author    = {Jeremy G. Siek and Philip Wadler},
+  title     = {Threesomes, with and without blame},
+  booktitle = popl,
+  pages     = {365--376},
+  year      = {2010},
+}
+
+@inproceedings{longley03,
+  title={Universal types and what they are good for},
+  author={Longley, John R},
+  booktitle={Domain theory, logic and computation},
+  pages={25--63},
+  year={2003},
+}
+@inproceedings{dimoulas12,
+title = "Complete Monitors for Behavioral Contracts",
+author = "Christos Dimoulas and Sam Tobin-Hochstadt and Matthias Felleisen",
+booktitle = esop,
+year = 2012,
+month = mar}
+@inproceedings{mz2015functors,
+ author = {Melli\`{e}s, Paul-Andr{\'e} and Zeilberger, Noam},
+ title = {Functors Are Type Refinement Systems},
+ booktitle = {Proceedings of the 42Nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages},
+ series = {POPL '15},
+ year = {2015},
+ isbn = {978-1-4503-3300-9},
+ location = {Mumbai, India},
+ pages = {3--16},
+ numpages = {14},
+ url = {http://doi.acm.org/10.1145/2676726.2676970},
+ doi = {10.1145/2676726.2676970},
+ acmid = {2676970},
+ publisher = {ACM},
+ address = {New York, NY, USA},
+ keywords = {category theory, refinement types, type theory},
+} 
+@article{mz2015isbellpreprint,
+  author    = {Paul{-}Andr{\'{e}} Melli{\`{e}}s and
+               Noam Zeilberger},
+  title     = {Isbell Duality for Refinement Types},
+  journal   = {CoRR},
+  volume    = {abs/1501.05115},
+  year      = {2015},
+  url       = {http://arxiv.org/abs/1501.05115},
+  timestamp = {Mon, 02 Feb 2015 14:12:25 +0100},
+  biburl    = {http://dblp.uni-trier.de/rec/bib/journals/corr/MelliesZ15},
+  bibsource = {dblp computer science bibliography, http://dblp.org}
+}
+@inproceedings{mz2016bifibrational,
+  author    = {Paul{-}Andr{\'{e}} Melli{\`{e}}s and
+               Noam Zeilberger},
+  title     = {A bifibrational reconstruction of Lawvere's presheaf hyperdoctrine},
+  booktitle = {Proceedings of the 31st Annual {ACM/IEEE} Symposium on Logic in Computer
+               Science, {LICS} '16, New York, NY, USA, July 5-8, 2016},
+  pages     = {555--564},
+  year      = {2016},
+  crossref  = {DBLP:conf/lics/2016},
+  url       = {http://doi.acm.org/10.1145/2933575.2934525},
+  doi       = {10.1145/2933575.2934525},
+  timestamp = {Thu, 27 Oct 2016 11:27:54 +0200},
+  biburl    = {http://dblp.uni-trier.de/rec/bib/conf/lics/MelliesZ16},
+  bibsource = {dblp computer science bibliography, http://dblp.org}
+}
+
+
+@article{shulman2008framed,
+  title={Framed bicategories and monoidal fibrations},
+  author={Shulman, Michael},
+  journal={Theory and Applications of Categories},
+  volume={20},
+  number={18},
+  pages={650--738},
+  year={2008}
+}
+
+@article{courser2016bicategory,
+  title={A bicategory of decorated cospans},
+  author={Courser, Kenny},
+  journal={arXiv preprint arXiv:1605.08100},
+  year={2016}
+}
+
+@article{garner2006,
+author = {Garner, Richard},
+journal = {Cahiers de Topologie et Géométrie Différentielle Catégoriques},
+number = 4,
+pages = {261-317},
+title = {Double clubs},
+volume = 47,
+year = 2006,
+}
+
+@misc{shulman2009lax,
+  title = {The Problem with Lax Functors},
+  author = {Shulman, Mike},
+  howpublished = {\url{https://golem.ph.utexas.edu/category/2009/12/the_problem_with_lax_functors.html}},
+  note = {Accessed: 2016-11-22},
+}
+
+@misc{harley,
+  title = {The Combination of Dynamic and Static Typing from a Categorical Perspective},
+  author = {Harley Eades III and Michael Townsend},
+  howpublished = {\url{http://metatheorem.org/includes/pubs/Grady-Draft.pdf}},
+  year={2017},
+  note = {Accessed: 2017-7-7},
+}
+
+
+@article{hayashi85,
+  author    = {Susumu Hayashi},
+  title     = {Adjunction of Semifunctors: Categorical Structures in Nonextensional
+               Lambda Calculus},
+  journal   = {Theor. Comput. Sci.},
+  volume    = {41},
+  pages     = {95--104},
+  year      = {1985},
+}
+
+@article{felleisen90,
+  title={On the expressive power of programming languages},
+  author={Felleisen, Matthias},
+  journal={ESOP'90},
+  year={1990},
+}
+@article{benton05:embedded,
+  title={Embedded Interpreters},
+  author={Nick Benton},
+  journal=jfp,
+  volume={15},
+  number={04},
+  pages={503--542},
+  year={2005},
+  publisher={Cambridge Univ Press}
+}
+@article{henglein94:dynamic-typing,
+ author="Fritz Henglein",
+ title="Dynamic Typing: Syntax and Proof Theory",
+ journal=scp,
+ volume="22",
+ number="3",
+ pages="197--230",
+ year="1994"
+}
+@article{favonia17,
+ title={Correctness of compiling polymorphism to dynamic typing},
+ volume={27},
+ journal={Journal of Functional Programming},
+ author={Keun-Bang Hou (Favonia) and Nick Benton and Robert Harper},
+ year={2017}
+}
+@inproceedings{AGT,
+ author = {Garcia, Ronald and Clark, Alison M. and Tanter, \'{E}ric},
+ title = {Abstracting Gradual Typing},
+ booktitle = popl,
+ year={2016}
+}
+@article{pitts96,
+title = "Relational Properties of Domains",
+journal = "Information and Computation",
+volume = "127",
+number = "2",
+pages = "66 - 90",
+year = "1996",
+author = "Andrew M. Pitts",
+}
+
+@article{smythplotkin,
+  title={The category-theoretic solution of recursive domain equations},
+  author={Smyth, Michael B and Plotkin, Gordon D},
+  journal={SIAM Journal on Computing},
+  volume={11},
+  number={4},
+  year={1982},
+}
+
+@inproceedings{refined,
+ author={Jeremy Siek and Micahel Vitousek and Matteo Cimini and John Tang Boyland},
+ title={Refined Criteria for Gradual Typing},
+ booktitle = "1st Summit on Advances in Programming Languages",
+ series={SNAPL 2015},
+ year={2015},
+}
+@inproceedings{gradualizer16,
+ author = {Cimini, Matteo and Siek, Jeremy G.},
+ title = {The Gradualizer: A Methodology and Algorithm for Generating Gradual Type Systems},
+ booktitle = {Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages},
+ series = {POPL '16},
+ year={2016}                 
+}
+@inproceedings{gradualizer17,
+ author = {Cimini, Matteo and Siek, Jeremy G.},
+ title = {Automatically Generating the Dynamic Semantics of Gradually Typed Languages},
+ booktitle = {Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages},
+ series = {POPL 2017},
+ year = {2017},
+ pages = {789--803},
+}
+
+@inproceedings{gradeffects2014,
+ author = {Ba\~{n}ados Schwerter, Felipe and Garcia, Ronald and Tanter, \'{E}ric},
+ title = {A Theory of Gradual Effect Systems},
+ booktitle = {Proceedings of the 19th ACM SIGPLAN International Conference on Functional Programming},
+ series = {ICFP '14},
+ location = {Gothenburg, Sweden},
+ pages = {283--295},
+ year={2014}                  
+} 
+
+@inproceedings{disney2011gradual,
+  title={Gradual information flow typing},
+  author={Disney, Tim and Flanagan, Cormac},
+  booktitle={International Workshop on Scripts to Programs 2011},
+  year={2011}
+}
+
+@inproceedings{ahmed17,
+author = {Amal Ahmed and Dustin Jamner and Jeremy G. Siek and Philip Wadler},
+title = {Theorems for Free for Free: Parametricity, With and Without Types},
+booktitle = icfp,
+year = {2017},
+}
+@inproceedings{igarashipoly17,
+author = {Yuu Igarashi and Taro Sekiyama and Atsushi Igarashi},
+title = {On Polymorphic Gradual Typing},
+booktitle = icfp17,
+year = {2017},
+}
+@inproceedings{igarashisession17,
+author = {Atsushi Igarashi and Peter Thiemann and Vasco Vasconcelos and Philip Wadler},
+title = {Gradual Session Types},
+booktitle = icfp,
+year = {2017},
+}
+@Inbook{freyd91,
+author="Freyd, Peter",
+editor="Carboni, Aurelio and Pedicchio, Maria Cristina and Rosolini, Guiseppe",
+title="Algebraically complete categories",
+bookTitle="Category Theory: Proceedings of the International Conference held in Como, Italy, July 22--28, 1990",
+year="1991",
+pages="95--104",
+}
+@inproceedings{siek-taha07,
+ author = "Jeremy G. Siek and Walid Taha",
+ title = "Gradual Typing for Objects",
+ booktitle = ecoop,
+ year = 2007,
+}
+@article{plotkin1993logic,
+  title={A logic for parametric polymorphism},
+  author={Plotkin, Gordon and Abadi, Mart{\'\i}n},
+  journal={Typed Lambda Calculi and Applications},
+  pages={361--375},
+  year={1993},
+}
+@inproceedings{lehmann17,
+ author = {Lehmann, Nico and Tanter, \'{E}ric},
+ title = {Gradual Refinement Types},
+ booktitle = popl,
+ year={2017},
+} 
+@article{felleisen-hieb,
+    author = "Matthias Felleisen and Robert Hieb",
+    title = "A Revised Report on the Syntactic Theories of Sequential Control and State",
+    journal = "Theor. Comput. Sci.",
+    volume = "103",
+    number = "2",
+    pages = "235--271",
+    year = "1992",
+}
+@article{kock95,
+title = "Monads for which structures are adjoint to units",
+journal = "Journal of Pure and Applied Algebra",
+volume = "104",
+number = "1",
+pages = "41 - 59",
+year = "1995",
+author = "Anders Kock",
+}
+
+@inproceedings{dagand16,
+ author = {Dagand, Pierre-Evariste and Tabareau, Nicolas and Tanter, \'{E}ric},
+ title = {Partial Type Equivalences for Verified Dependent Interoperability},
+ booktitle = icfp,
+ year = {2016},
+ location = {Nara, Japan},
+}
+
+@book{Lambek:1986,
+ author = {Lambek, J. and Scott, P. J.},
+ title = {Introduction to Higher Order Categorical Logic},
+ year = {1986},
+ isbn = {0-521-24665-2},
+ publisher = {Cambridge University Press},
+} 
+
+@article{crutwell-shulman,
+Author = {G. S. H. Cruttwell and Michael A. Shulman},
+Title = {A unified framework for generalized multicategories},
+Year = {2009},
+Eprint = {arXiv:0907.2460},
+journal = {Theory and Applications of Categories},
+volume = {24},
+number = {21}
+}
+
+@article{wand79ocat,
+title = "Fixed-point constructions in order-enriched categories",
+journal = "Theoretical Computer Science",
+volume = "8",
+number = "1",
+pages = "13 - 30",
+year = "1979",
+note = "",
+author = "Mitchell Wand"
+}
+
+@phdthesis{Dunphy:2002,
+ author = {Dunphy, Brian Patrick},
+ advisor = {Reddy, Uday},
+ title = {Parametricity As a Notion of Uniformity in Reflexive Graphs},
+ year = {2002},
+ isbn = {0-493-89955-3},
+ publisher = {University of Illinois at Urbana-Champaign},
+ address = {Champaign, IL, USA},
+}
+
+@article{ohearn95,
+author = "O'Hearn, Peter W. and Tennent, Robert D.",
+title = "Parametricity and Local Variables",
+journal = jacm,
+volume = "42",
+number = "3",
+pages = "658--709",
+month = "May",
+year = "1995"}
+
+@InProceedings{johann15bifibrational,
+  title =       {Bifibrational Functorial Semantics for Parametric Polymorphism},
+  author =        {Neil Ghani and Patricia Johann and Fredrik Nordvall Forsberg and Federico Orsanigo and Tim Revell},
+  booktitle = { Proceedings of Mathematical Foundations of Program Semantics},
+  year = {2015}
+}
+
+@book{constable+86nuprl-book,
+  author =    "Robert L. Constable and Stuart F. Allen and H. M. Bromley and 
+               W. R. Cleaveland and J. F. Cremer and R. W. Harper and Douglas J. Howe and 
+               T. B. Knoblock and N. P. Mendler and P. Panangaden and James T. Sasaki and
+               Scott F. Smith",
+  title="Implementing Mathematics with the {NuPRL} Proof Development System",
+  publisher={Prentice Hall},
+  year=1986
+}
+
+@unpublished{dagand:hal-01629909,
+  TITLE = {{Foundations of Dependent Interoperability}},
+  AUTHOR = {Dagand, Pierre-Evariste and Tabareau, Nicolas and Tanter, {\'E}ric},
+  URL = {https://hal.inria.fr/hal-01629909},
+  NOTE = {working paper or preprint},
+  YEAR = {2017},
+}
+
+@inproceedings{statonlevy13,
+ author = {Staton, Sam and Levy, Paul Blain},
+ title = {Universal Properties of Impure Programming Languages},
+ booktitle = popl,
+ year = 2013
+}
+
+@inproceedings{seely1984locally,
+  title={Locally cartesian closed categories and type theory},
+  author={Seely, Robert AG},
+  booktitle={Mathematical proceedings of the Cambridge philosophical society},
+  volume={95},
+  number={1},
+  pages={33--48},
+  year={1984},
+  organization={Cambridge University Press}
+}
+
+@inproceedings{hofmann1994interpretation,
+  title={On the interpretation of type theory in locally cartesian closed categories},
+  author={Hofmann, Martin},
+  booktitle={International Workshop on Computer Science Logic},
+  pages={427--441},
+  year={1994},
+}
+
+@article{clairambault2014biequivalence,
+  title={The biequivalence of locally cartesian closed categories and Martin-L{\"o}f type theories},
+  author={Clairambault, Pierre and Dybjer, Peter},
+  journal={Mathematical Structures in Computer Science},
+  volume={24},
+  number={6},
+  year={2014},
+  publisher={Cambridge University Press}
+}
+
+@article{Vakarthesis,
+  author    = {Matthijs V{\'{a}}k{\'{a}}r},
+  title     = {In Search of Effectful Dependent Types},
+  journal   = {CoRR},
+  year      = {2017},
+  url       = {http://arxiv.org/abs/1706.07997},
+}
+
+@inbook{ahmanghaniplotkin16,
+  title     = "Dependent Types and Fibred Computational Effects",
+  author    = "Daniel Ahman and Neil Ghani and Plotkin, {Gordon D.}",
+  year      = "2016",
+  doi       = "10.1007/978-3-662-49630-5_3",
+  booktitle = "Foundations of Software Science and Computation Structures",
+}
+@inproceedings{ahmed08:paramseal,
+title = "Parametric polymorphism through run-time sealing, or, Theorems for low, low prices!",
+author = "Jacob Matthews and Amal Ahmed",
+booktitle = esop,
+year = 2008,
+month = mar,
+location = "Budapest, Hungary",
+}
+@phdthesis{levy01:phd,
+author = "Levy, Paul Blain",
+title = "Call-by-Push-Value",
+type = "{Ph.~D.} Dissertation",
+school = "Queen Mary, University of London",
+department = "Department of Computer Science",
+address = "London, UK",
+month = mar,
+year = "2001"}
+
+@inproceedings{neis09,
+ author = {Georg Neis and Derek Dreyer and Andreas Rossberg},
+ title = {Non-Parametric Parametricity},
+ booktitle = icfp,
+ pages = "135--148",
+ year = {2009},
+ month = sep
+}
+
+@Article{moggi91,
+  author =       {Eugenio Moggi},
+  title =        {Notions of computation and monads},
+  journal =      {Inform. And Computation},
+  year =         {1991},
+  volume =    {93},
+  number =    {1},
+}
+ @inproceedings{Wolff:2011:GT,
+ author = {Wolff, Roger and Garcia, Ronald and Tanter, \'{E}ric and Aldrich, Jonathan},
+ title = {Gradual Typestate},
+ booktitle = {Proceedings of the 25th European Conference on Object-oriented Programming},
+ series = {ECOOP'11},
+ year = {2011},
+}
+
+@article{extended,
+  author    = {Max S. New and
+               Daniel R. Licata},
+  title     = {Call-by-name Gradual Type Theory},
+  journal   = {CoRR},
+  year      = {2018},
+  url       = {http://arxiv.org/abs/1802.00061},
+}
+
+@article{newlicata2018-fscd,
+  author    = {Max S. New and
+               Daniel R. Licata},
+  title     = {Call-by-name Gradual Type Theory},
+  journal   = {FSCD},
+  year      = {2018},
+}
+
+@article{martinlof83sienna,
+	year = {1983/1996},
+	journal = {Nordic Journal of Philosophical Logic},
+	publisher = {Scandinavian University Press},
+	volume = {1},
+	author = {Per Martin{-}L\"of},
+	number = {1},
+	title = {On the Meanings of the Logical Constants and the Justifications of the Logical Laws (Sienna Lectures)},
+	pages = {11--60}
+}
+
+@Article{pfenningdavies,
+    author = {Frank Pfenning and Rowan Davies},
+    title = {A Judgmental Reconstruction of Modal Logic},
+    journal = {Mathematical Structures in Computer Science},
+    year = {2001},
+    volume = {11}, 
+    pages = {511-540},
+}
+
+@article{dagand18,
+  title={Foundations of dependent interoperability},
+  volume={28},
+  DOI={10.1017/S0956796818000011},
+  journal={Journal of Functional Programming},
+  publisher={Cambridge University Press},
+  author={Dagand, Pierr-\'{E}variste and Tabareau, Nicolas and Tanter, \'{E}ric},
+  year={2018},
+  pages={e9}
+}
+  
+@inproceedings{thatte90,
+ author = "Satish Thatte",
+ title = "Quasi-static typing",
+ booktitle = popl,
+ pages = "367--381",
+ year = 1990
+}
+
+@misc{hejlsberg12,
+	Author = {Anders Hejlsberg},
+	Date-Added = {2014-01-06 15:39:32 +0000},
+	Date-Modified = {2014-09-11 10:40:22 +0000},
+	Howpublished = {Microsoft Channel 9 Blog},
+	Title = {Introducing {TypeScript}},
+	Year = {2012}}
+
+@incollection{bierman14,
+	Author = {Bierman, Gavin and Abadi, Mart{\'\i}n and Torgersen, Mads},
+	Booktitle = {ECOOP 2014 -- Object-Oriented Programming},
+	Date-Added = {2014-10-06 15:02:06 +0000},
+	Date-Modified = {2015-11-06 03:05:46 +0000},
+	Editor = {Jones, Richard},
+	Language = {English},
+	Pages = {257-281},
+	Publisher = {Springer Berlin Heidelberg},
+	Series = {Lecture Notes in Computer Science},
+	Title = {Understanding {TypeScript}},
+	Volume = {8586},
+	Year = {2014}}
+
+@inproceedings{verlaguet13,
+	Author = {Julien Verlaguet},
+	Booktitle = {Commercial Users of Functional Programming (CUFP)},
+	Date-Added = {2014-01-06 15:28:27 +0000},
+	Date-Modified = {2014-04-14 11:23:23 +0000},
+	Title = {Facebook: Analyzing {PHP} statically},
+	Year = {2013}}
+
+@url{chaudhuri14,
+	Author = {Avik Chaudhuri},
+	Date-Added = {2015-07-16 16:32:06 +0000},
+	Date-Modified = {2015-11-18 04:29:52 +0000},
+	Keywords = {gradual typing},
+	Title = {Flow: a static type checker for JavaScript},
+	Url = {http://flowtype.org/},
+	Urldate = {2014},
+	Year = {2014},
+	Bdsk-Url-1 = {http://flowtype.org/}}
+
+@manual{bracha11,
+	Author = {Gilad Bracha},
+	Date-Added = {2014-04-14 10:26:35 +0000},
+	Date-Modified = {2014-04-14 10:27:35 +0000},
+	Month = {October},
+	Organization = {Google},
+	Title = {Optional Types in {Dart}},
+	Year = {2011}}
+
+@misc{hejlsberg10,
+	Author = {Anders Hejlsberg},
+	Date-Added = {2014-01-06 15:43:48 +0000},
+	Date-Modified = {2014-01-06 16:09:03 +0000},
+	Howpublished = {Microsoft Channel 9 Blog},
+	Month = {April},
+	Title = {C\# 4.0 and beyond by Anders Hejlsberg},
+	Year = {2010}}
+
+@Misc{turner14:typescript,
+  author = 	 {Jonathan Turner},
+  title = 	 {TypeScript and the Road to 2.0},
+  Url = {https://blogs.msdn.microsoft.com/typescript/2014/10/22/typescript-and-the-road-to-2-0/},
+  month = 	 {October},
+  year = 	 2014}
+
+@inproceedings{siek15:mono,
+ author = {Siek, Jeremy G. and Vitousek, Michael M. and Cimini, Matteo and Tobin-Hochstadt, Sam and Garcia, Ronald},
+ title = {Monotonic References for Efficient Gradual Typing},
+ booktitle = {Proceedings of the 24th European Symposium on Programming on Programming Languages and Systems - Volume 9032},
+ year = {2015},
+}
+
+@misc{hack14:blog,
+ author = {Julien Verlaguet and Alek Menghrajani},
+ title  = {Hack: a new programming language for HHVM},
+ url = {https://code.facebook.com/posts/264544830379293/hack-a-new-programming-language-for-hhvm/},
+ month = {March},
+ year  = {2014}
+}
+
+@inproceedings{gronski06,
+ author = "Jessica Gronski and Kenneth Knowles and Aaron Tomb and Stephen N. Freund and Cormac Flanagan",
+ title = "Sage: Hybrid Checking for Flexible Specifications",
+ booktitle = scheme,
+ month = sep,
+ pages = "93--104",
+ year = 2006
+}
+
+@inproceedings{Ina:2011zr,
+	Author = {Ina, Lintaro and Igarashi, Atsushi},
+	Booktitle = {Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications},
+	Date-Added = {2012-11-09 23:27:38 +0000},
+	Date-Modified = {2012-12-20 08:58:22 -0700},
+	Keywords = {dynamic types, generics, gradual typing},
+	Series = {OOPSLA '11},
+	Title = {Gradual typing for generics},
+	Year = {2011}}
+
+@inproceedings{swamy14,
+author    = {Nikhil Swamy and C{\'e}dric Fournet and Aseem Rastogi and
+  Karthikeyan Bhargavan and Juan Chen and Pierre-Yves Strub and Gavin M. Bierman},
+title     = {Gradual typing embedded securely in {J}ava{S}cript},
+booktitle = popl14,
+year      = {2014},
+pages     = {425-438}
+}
+
+@article{Allende:2013aa,
+	Author = {Esteban Allende and Oscar Calla{\'u} and Johan Fabry and {\'E}ric Tanter and Marcus Denker},
+	Date-Added = {2014-03-29 03:55:17 +0000},
+	Date-Modified = {2014-03-29 03:55:20 +0000},
+	Journal = {Science of Computer Programming},
+	Month = aug,
+	Note = {Available online},
+	Publisher = {Elsevier},
+	Title = {Gradual Typing for {Smalltalk}},
+	Urldoi = {http://dx.doi.org/10.1016/j.scico.2013.06.006},
+	Urlpdf = {http://pleiad.dcc.uchile.cl/papers/2013/allendeAl-scp2013.pdf},
+	Users = {eallende , ocallau , jfabry , etanter},
+	Year = 2013}
+
+@inproceedings{ahmed06:lr,
+title = "Step-Indexed Syntactic Logical Relations for Recursive and Quantified Types",
+author = "Amal Ahmed",
+booktitle = esop,
+year = 2006,
+month = mar,
+location = "Vienna, Austria",
+pages = "69--83"}
+
+@techreport{ahmed06:esop06-techrpt,
+author = "Amal Ahmed",
+title = "Step-Indexed Syntactic Logical Relations for Recursive and Quantified Types",
+institution = "Harvard University",
+number = "TR-01-06",
+month = jan,
+year = 2006,
+note="Available at \texttt{http://www.cs.indiana.edu/\linebreak[0]$\sim$amal/\linebreak[0]papers/\linebreak[0]lr-recquant-techrpt.pdf}"}
+
+@article{fuhrmann1999direct,
+  title={Direct models of the computational lambda-calculus},
+  author={F{\"u}hrmann, Carsten},
+  journal={Electronic Notes in Theoretical Computer Science},
+  volume={20},
+  pages={245--292},
+  year={1999},
+}