This seems to be the only place the neutral value is assigned and it is never checked for anywhere. So maybe we do just need to treat this as binary? All of the checks seem to be binary, i.e. if not positive then negative. If that's the case then maybe we don't need the constants at all and we can just use booleans? I'm probably missing something but figured it was worth asking...