//I still don't see a reason for #true? and #false?. it's a language problem. ruby caters english and sometimes the language does not fall immediately into ones (non-english) ears... Thus the op was asking if he could be more explicit+... consider: a = (1 > 0) if a block end At a first glance (assumming sans k on progg lang), one has to know semantics of if. And here, one realizes that block executes if a is true. now consider: if a.true? block end Surely, one can deduce that block will execute if a is true. and if a.false? block end Surely, one can deduce that block will execute if a is false. One does not need to bend mind just to say "if not a". Why would one want to say "not true" when he can say "false"? And besides, "if a" does not look o-o to me (only). "if a.is_a" or "if a.kind_of" looks o-o. also irb(main):010:0> p a.methods ["send", "&", "object_id", "singleton_methods", "__send__", "equal?", "taint", "frozen?", "instance_variab le_get", "kind_of?", "to_a", "instance_eval", "type", "protected_methods", "extend", "|", "eql?", "instanc e_variable_set", "hash", "is_a?", "to_s", "class", "tainted?", "private_methods", "^", "untaint", "id", "i nspect", "==", "===", "clone", "public_methods", "respond_to?", "display", "freeze", "__id__", "=~", "meth ods", "method", "nil?", "dup", "instance_variables", "instance_of?"] a is really an object. so "if a" is asking like "is a an object" ?? Btw, in our local dialect, we do not have an "if a" counterpart, so you can understand our slight predicament :-| kind regards -botp