I find it currently somewhat confusing what the order of arguments is to restraints and score function constructors. I propose establishing the convention that the unary function or the score function is always first. Such a convention has several advantages: - it makes it easier to get the thisown line in IMP.i right - the remainder of the arguments are less consistent, but everything takes and owns a score function or a unary function - the score function is needed for the restraints, other things are less important - we can then make the other arguments option. For example, I generally create restraints before I know the particles they will act on (since those change), so I create them with an empty list of particles. It would be a minor convenience to be able to omit this
I'll make the changes if no one objects. It should take only a few minutes.