It is currently possible to do this:
>>> import friendlysam as fs
>>> x=fs.Variable()
>>> y=fs.VariableCollection()
>>> x+y
<friendlysam.opt.Add at 0x...>
It would be friendly to add a little isinstance() call in the Operator constructor or something, to check that such mistakes are not made.