On Thu, Oct 20, 2011 at 5:19 AM, Captain Freako <capn.freako@gmail.com> wrote:
Hi David,

I was referring to the `f' in the `runAuto' function, not the `liftAu' function.

-db


Ah, I see. You quoted one thing and spoke of another, and I got all confused. Keep in mind that functions are arrows (instance Arrow (->)). 

> type FilterAu b c = Automaton (->) b c
> runAuto :: FilterAu b c -> [b] -> [c]
> runAuto a             []     = []
> runAuto (Automaton f) (x:xs) = let
>   (y,a) = f x
>   in y:runAuto a xs