% rtlimits.tex

% Author: Olaf Chitil
% Created: 11.7.2000
% Last Update: 
  
\documentclass{article}
\usepackage{pst-node}
\usepackage[a4paper]{geometry}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{alltt}
\usepackage{url}



%------------------------------------------------------------------------------

\begin{document}
\thispagestyle{empty}

\title{Limits of Redex Trails} 
\author{Olaf Chitil}
\date{\today}
\maketitle

%------------------------------------------------------------------------------

\section{Implementation through Transformation}

\subsection{Higher-order types}

The transformation of types does not work for higher-order types, that is,
types with parameters of a kind beyond \texttt{*}.
For example, how should 
\texttt{data Comb f a b = C (f a b)}
be transformed? Both \texttt{Comb (->) Int Bool} and \texttt{Comb (,) Int Bool} are instances of the type.

\subsection{Non-simple contexts and classes}

The non-simple contexts of Haskell 98 may contain types that are not just type variables. Would these types need to be transformed as well? Would the resulting contexts still be valid?


\section{Trusting}

It would be nice if all reductions of untrusted functions were registered in the redex trail, even if some functions are trusted. Unfortunately this is currently not the case, for example, suppose
\begin{alltt}
filter test [1,2,3]
\end{alltt}
evaluates to \texttt{[]}. If \texttt{filter} is trusted, then the parent redex of \texttt{[]} is \texttt{filter test [1,2,3]}. The redexes \texttt{test 1}, \texttt{test 2}, \texttt{test 3} and their values \texttt{False},\texttt{False},\texttt{False} are not part of the redex trail. The problem is that the values of these redexes are not part of the final value. The problem seems related to the required special handling of projections.

%------------------------------------------------------------------------------

\end{document}