This works on 3.1.3 (Seprated Sally). This is the IRB session verifying this
iGnition:new me$ irb
Could not load Hirb: no such file to load -- hirb
ruby-1.8.7-p352 :001 > require 'haml'
=> true
ruby-1.8.7-p352 :002 > Ha
Hash Haml
ruby-1.8.7-p352 :002 > Ha
Hash Haml
ruby-1.8.7-p352 :002 > Haml
=> Haml
ruby-1.8.7-p352 :003 > engine = Haml::Engine.n
Haml::Engine.name Haml::Engine.new Haml::Engine.nil?
ruby-1.8.7-p352 :003 > engine = Haml::Engine.new("%p Haml code!")
=> #<Haml::Engine:0x101afe0e0 @dont_indent_next_line=false, @node=nil, @flat=false, @template_index=3, @next_line=#<struct Haml::Parser::Line text="-#", unstripped="-#", full="-#", index=2, compiler=#<Haml::Engine:0x101afe0e0 ...>, eodtrue, tab_change0, precompiled"_hamlout.push_text("<p>Haml code!</p>\\n", 0, false);", haml_commentfalse, template_tabs0, options{:suppress_eval=>false, :escape_html=>false, :attr_wrapper=>"'", :escape_attrs=>true, :format=>:xhtml, :autoclose=>["meta", "img", "link", "br", "hr", "input", "area", "param", "col", "base"], :preserve=>["textarea", "pre", "code"], :ugly=>false, :line=>1, :filename=>"(haml)"}, output_line1, to_merge[], parentroot nil
tag {:nuke_outer_whitespace=>false, :nuke_inner_whitespace=>false, :value=>"Haml code!", :escape_html=>false, :attributes=>{}, :parse=>nil, :preserve_script=>nil, :self_closing=>false, :name=>"p", :object_ref=>"nil", :attributes_hashes=>[], :preserve_tag=>false}
haml_comment {:text=>""}, output_tabs0, template[], dont_tab_up_next_textfalse, indentationnil, newlines0, rootroot nil
tag {:nuke_outer_whitespace=>false, :nuke_inner_whitespace=>false, :value=>"Haml code!", :escape_html=>false, :attributes=>{}, :parse=>nil, :preserve_script=>nil, :self_closing=>false, :name=>"p", :object_ref=>"nil", :attributes_hashes=>[], :preserve_tag=>false}
haml_comment {:text=>""}, to_close_stack[], tab_upnil, line#<struct Haml::Parser::Line text="-#", unstripped="-#", full="-#", index=2, compiler=#<Haml::Engine:0x101afe0e0 ..., eod=true, @index=2>
ruby-1.8.7-p352 :004 > Haml::V
Haml::Version Haml::VERSION
ruby-1.8.7-p352 :004 > Haml::Version
=> Haml::Version
ruby-1.8.7-p352 :005 > Haml::VERSION
Haml::VERSION
ruby-1.8.7-p352 :005 > Haml::VERSION
=> "3.1.3 (Separated Sally)"
ruby-1.8.7-p352 :006 > exit
iGnition:new me$ ruby -v
ruby 1.8.7 (2011-06-30 patchlevel 352) [i686-darwin10.8.0]