New function compose-sets. valid? can also accepts 1 param

Fixes #19.