beam_validator: Infer BIF argument types
beam_validator: Infer BIF argument types

If we know that a BIF will badarg unless its arguments have certain
types, we can infer that we have at least those types on success.

Note that we can't do this in the general case as the BIF could
fail for reasons other than bad arguments.

dumbbell/otp,uabboli/otp,bjorng/otp,vladdu/otp,getong/otp,potatosalad/otp,getong/otp,getong/otp,RoadRunnr/otp,vinoski/otp,bsmr-erlang/otp,rlipscombe/otp,RoadRunnr/otp,dgud/otp,potatosalad/otp,ferd/otp,isvilen/otp,getong/otp,dgud/otp,kvakvs/otp,electricimp/otp,erlang/otp,lrascao/otp,dumbbell/otp,emacsmirror/erlang,electricimp/otp,uabboli/otp,mikpe/otp,emacsmirror/erlang,ferd/otp,jj1bdx/otp,uabboli/otp,rlipscombe/otp,emacsmirror/erlang,electricimp/otp,getong/otp,vinoski/otp,lrascao/otp,legoscia/otp,vinoski/otp,uabboli/otp,ferd/otp,getong/otp,rlipscombe/otp,dgud/otp,g-andrade/otp,potatosalad/otp,dgud/otp,mikpe/otp,jj1bdx/otp,legoscia/otp,mikpe/otp,kvakvs/otp,RoadRunnr/otp,g-andrade/otp,vinoski/otp,dgud/otp,ferd/otp,RoadRunnr/otp,bsmr-erlang/otp,g-andrade/otp,jj1bdx/otp,RoadRunnr/otp,vinoski/otp,lrascao/otp,aboroska/otp,kvakvs/otp,legoscia/otp,bjorng/otp,dumbbell/otp,uabboli/otp,emacsmirror/erlang,getong/otp,ferd/otp,dgud/otp,vladdu/otp,aboroska/otp,jj1bdx/otp,getong/otp,getong/otp,kvakvs/otp,erlang/otp,uabboli/otp,bjorng/otp,potatosalad/otp,erlang/otp,legoscia/otp,electricimp/otp,rlipscombe/otp,bsmr-erlang/otp,g-andrade/otp,vladdu/otp,emacsmirror/erlang,g-andrade/otp,legoscia/otp,lrascao/otp,potatosalad/otp,ferd/otp,RoadRunnr/otp,vladdu/otp,mikpe/otp,kvakvs/otp,dgud/otp,jj1bdx/otp,g-andrade/otp,vinoski/otp,uabboli/otp,mikpe/otp,bjorng/otp,isvilen/otp,isvilen/otp,lrascao/otp,erlang/otp,bjorng/otp,g-andrade/otp,g-andrade/otp,legoscia/otp,legoscia/otp,dgud/otp,bsmr-erlang/otp,bsmr-erlang/otp,uabboli/otp,bsmr-erlang/otp,vinoski/otp,ferd/otp,lrascao/otp,isvilen/otp,aboroska/otp,electricimp/otp,getong/otp,RoadRunnr/otp,emacsmirror/erlang,dgud/otp,aboroska/otp,mikpe/otp,bjorng/otp,electricimp/otp,potatosalad/otp,jj1bdx/otp,erlang/otp,erlang/otp,potatosalad/otp,aboroska/otp,emacsmirror/erlang,kvakvs/otp,lrascao/otp,dumbbell/otp,aboroska/otp,ferd/otp,isvilen/otp,jj1bdx/otp,potatosalad/otp,bsmr-erlang/otp,rlipscombe/otp,lrascao/otp,emacsmirror/erlang,emacsmirror/erlang,isvilen/otp,dumbbell/otp,kvakvs/otp,bjorng/otp,emacsmirror/erlang,rlipscombe/otp,rlipscombe/otp,kvakvs/otp,mikpe/otp,jj1bdx/otp,isvilen/otp,ferd/otp,erlang/otp,dumbbell/otp,dgud/otp,potatosalad/otp,electricimp/otp,dumbbell/otp,bjorng/otp,jj1bdx/otp,legoscia/otp,bsmr-erlang/otp,dumbbell/otp,erlang/otp,aboroska/otp,vinoski/otp,bsmr-erlang/otp,vladdu/otp,dumbbell/otp,vladdu/otp,g-andrade/otp,bjorng/otp,mikpe/otp,RoadRunnr/otp,aboroska/otp,isvilen/otp,legoscia/otp,mikpe/otp,isvilen/otp,lrascao/otp,kvakvs/otp,rlipscombe/otp,dumbbell/otp,vinoski/otp,RoadRunnr/otp,mikpe/otp,erlang/otp,vinoski/otp,uabboli/otp,potatosalad/otp,electricimp/otp,g-andrade/otp,vladdu/otp,rlipscombe/otp,aboroska/otp,rlipscombe/otp,electricimp/otp,jj1bdx/otp,erlang/otp,bjorng/otp,vladdu/otp,isvilen/otp,vladdu/otp