10 my $deparser = B::RecDeparse->new(deparse => [ '-sCi0v1' ], level => 1);
11 # my $deparser = B::Deparse->new('-sCi0v1');
14 return unless defined $_[0] and ref $_[0] eq 'CODE';
15 my $deparsed = $deparser->coderef2text($_[0]);
16 print STDERR "$deparsed\n";
17 my $code = eval 'sub ' . $deparsed;
22 sub add ($$) { $_[0] + $_[1] }
24 sub mul ($$) { $_[0] * $_[1] }
26 sub fma ($$$) { add +(mul $_[0], $_[1]), $_[2] }
28 print STDERR '### ', fma(1, 3, 2), "\n";
29 my $sfma = spec sub { my $x = \&mul; fma $_[0], 3, $_[1] };
30 print STDERR '### ', $sfma->(1, 2), "\n";