I'm happy to hear arguments to the contrary, but:
> However, I do not believe it's correct in saying it's not FRP
> because of it's "glitchiness", as this property is not an essential
> property of functional reactive programming.
That's bunk.
The problem with glitches is this: you can obtain a value from the
program that is inconsistent with its semantics (which, in a
transparent FRP language like FrTime or compiled Flapjax, is defined
in terms of the base language). This makes any non-trivial static
reasoning about the program essentially impossible. You can't perform
substitutions, establish invariants, etc., and if you do, you would be
reasoning faultily. I cannot think of anything more antithetical to
FRP than that.
Thus, to me, it is the basic safety condition for a usable FRP
language. Let me now qualify "usable".
One alternative is to redefine the semantics to be a power-set
semantics: the value of an expression is all possible results from all
possible glitchy interleavings of all sub-expressions. I wouldn't
want to program in that world. Maybe you do; the answer lies in the
semantics of your library.
What is that semantics? If you haven't written one down, no matter:
it's implicit in your programs. I am willing to bet your and your
users' source programs do NOT assume a power-set semantics, i.e., I
will not find a large number of conditionals checking for and skipping
over the "glitchy" answers as opposed to the normal one.
An amusing side question is how you will even determine the "correct",
non-glitchy answer. The only ways to do that are to repeat the entire
computation redundantly, or to tag every value with whether or not
it's glitchy. Does your library do either of those? If not, again,
you've assumed glitch-free execution.
Shriram