I think it would be good to have some description concerning meaning and allowed/possible arguments at least for `$value`, `$assoc` and `$comparison` to get an idea of how to use this API without having to read the code.
It's not completely clear for example that you can pass an array for `$value`.