I've been trying to make a flower crown out of composing sine waves in cairo. It's not going well.
That sounds like it will be really neat, I'm sorry it's not going well. I could do research assistant like jobs if you need anything looked into for this maybe.
I see you changed your mind about the 'proc' of naive-append-vector!.
Yes, now that I'm just mutating the struct and I was able to remove the storage variable it seems silly to pass a function just to call it on one argument; honestly, the reason I had it that way in the first place is that I have a bit of a aversion to multiple return values when they're not wrapped up in a struct, this was one of the reason I felt unsatisfied by the fold in 'vector-max' as well.
With the advent of find-head it seems that a global decision should be made on whether an empty radix is a first-class radix or just an internal convenience targeting the first branch of naive-append-vector!. If it is decided that it is first-class, then all radix consumers should be prepared to receive it, among them radix-append.
The plan is for it to be first-class like with vectors and lists in scheme, I've been slowly adding the feature to functions over the past couple days. radix-append has now been given this functionality as well.
I believe I've resolved all these issues (many this morning) and other than that it's was a slow day as promised: http://ix.io/1xY0