Use const references for arguments of client functions
Write unit test for gen_argument_type