What do you mean "document the types". They're type parameters... can you suggest better names for the parameters in StrongSyntax?
class typedAgg t where
agg :: t f r a b -> (r a -> b) -> f (r a) -> f b
...
To lots of people, that's going to be really confusing. It might be easier if I document that f is supposed to be the type of the table, r is the type of the row, and a is the type of elements in the rows, if that's the intended usage.Specifically with Strong, I'm not sure what I'd comment, as I'm not that comfortable in Scala yet and don't know what Strong is. I'm not going to go digging around and there are basically no comments in that file, which is the problem I'm talking about.