Still, the functor API is an interesting idea that might be worth pursuing.