What is the correct way to do this?
FunctionType constructor takes extra boolean for marking a varargs
There is some trick: feed your bytecode to llvm2cpp tool and you'll get
C++ source, which will construct the module you provided. From this
source you can see, how different things can be created via LLVM API.