deduct from right hand side expression

this is incomplete
use -std=c++11 to deduct types correctly

this is TEMPORARY implementation