Fixed some predicates returning new Boolean instances

There should only ever be one `true` or `false` instance. Methods such as Funject::number? and List::empty? were breaking this behavior.