4 Nov 1999 10:09:48 GMT, Marcin 'Qrczak' Kowalczyk <[EMAIL PROTECTED]> pisze:
[...]
> In my example it is not so trivial: the states are stored in some
> lists, compared to one another and passed to a function together
> with a different line contents than the previous time, so it is
> not sufficient to package the state in the result of the function
> (of a known type). A transformer is not isomorphic to a list of
> lines, because it can be restarted in the middle with a different
> line contents but the same state.
I realized I was wrong that the fact that transformers may be restarted
in the middle requires existentials. Here the only reason is that
they are to be compared! Otherwise the state could be hidden inside:
newtype Trans = Trans ([Tokens] -> ([Tokens], Trans))
It's really hard to find an example where existentials are unavoidable.
--
__("< Marcin Kowalczyk * [EMAIL PROTECTED] http://qrczak.ids.net.pl/
\__/ GCS/M d- s+:-- a22 C+++>+++$ UL++>++++$ P+++ L++>++++$ E-
^^ W++ N+++ o? K? w(---) O? M- V? PS-- PE++ Y? PGP->+ t
QRCZAK 5? X- R tv-- b+>++ DI D- G+ e>++++ h! r--%>++ y-