Higher level monadic interface for llvm-general