The issue you described with irb crashing was fixed between 2.0 and 2.1:
$ irb20 -rpyper
irb(main):001:0> a = [1, 3, 4, 3, 0, 3, 1]
=> [1, 3, 4, 3, 0, 3, 1]
irb(main):002:0> a.τsπ( :uniq ).χOixπ.χriXgζmEπ
NoMethodError: undefined method `map' for 0:Fixnum
/usr/local/lib/ruby/2.0/irb.rb:526:in `join': incompatible character encodings: ASCII-8BIT and UTF-8 (Encoding::CompatibilityError)
from /usr/local/lib/ruby/2.0/irb.rb:526:in `block (2 levels) in eval_input'
from /usr/local/lib/ruby/2.0/irb.rb:624:in `signal_status'
from /usr/local/lib/ruby/2.0/irb.rb:489:in `block in eval_input'
from /usr/local/lib/ruby/2.0/irb/ruby-lex.rb:247:in `block (2 levels) in each_top_level_statement'
from /usr/local/lib/ruby/2.0/irb/ruby-lex.rb:233:in `loop'
from /usr/local/lib/ruby/2.0/irb/ruby-lex.rb:233:in `block in each_top_level_statement'
from /usr/local/lib/ruby/2.0/irb/ruby-lex.rb:232:in `catch'
from /usr/local/lib/ruby/2.0/irb/ruby-lex.rb:232:in `each_top_level_statement'
from /usr/local/lib/ruby/2.0/irb.rb:488:in `eval_input'
from /usr/local/lib/ruby/2.0/irb.rb:397:in `block in start'
from /usr/local/lib/ruby/2.0/irb.rb:396:in `catch'
from /usr/local/lib/ruby/2.0/irb.rb:396:in `start'
from /usr/local/bin/irb20:12:in `<main>'
$ irb21 -rpyper
irb(main):001:0> a = [1, 3, 4, 3, 0, 3, 1]
=> [1, 3, 4, 3, 0, 3, 1]
irb(main):002:0> a.τsπ( :uniq ).χOixπ.χriXgζmEπ
NoMethodError: undefined method `map' for 0:Fixnum
from (eval):12:in `block in χriXgζmEπ'
from (eval):6:in `map'
from (eval):6:in `with_index'
from (eval):6:in `χriXgζmEπ'
from /usr/local/lib/ruby/gems/2.6/gems/pyper-2.0.1/lib/pyper.rb:165:in `method_missing'
from (irb):2
from /usr/local/bin/irb21:11:in `<main>'
irb(main):003:0>