Jason (jcreed) wrote,

Trying to understand this tech report on Arrowlets that I saw a poster about at ICFP. I wish they had given their code in a functional language first and then shown how it came out in javascript. I only really see how useful types are for understanding code when I don't have them!

The arrow they're using in figure 5 seems to be (written infix as A)

α A β = ∀ γ δ . α * γ * (β * γ → δ) → δ

γ being the type of "progress arrows".

Injection of ordinary functions α → β is pretty much determined by the type:

inj (f : α → β) : α A β = λ (x, p, k) . k (f(x), p)

>>> is also pretty straightforward:

(f : α A β) >>> (g : β A γ) : α A γ = λ (x, p, k) . f (x, p, λ (y, q) . g (y, q, k))

I'm having difficulty understanding what "progress arrows" are or how they function. Already arrows depart from the slightly nicer mathematical world of monads, and this paper seems to add yet more behavior without any intuition or framework for it to exist in.
Tags: programming

  • (no subject)

    Saw Mike Birbiglia's "Thank God for Jokes" with K in a little theater on bleeker. Funny show. I highly recommend his show "My girlfriend's boyfriend"…

  • (no subject)

    Oh jeez Boulet, this is what you casually slap together for a 24-hour comic? Come on, now, you're just showing off. (But seriously it is so cute)

  • (no subject)

    Second city yesterday was really funny. We got shoved in a front-row seat and picked on to provide detailed improv prompts for a big log improv…

  • Post a new comment


    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded