public static LLVMValueRef BuildOptionValue(this ContextWrapper context, IRBuilder builder, LLVMTypeRef optionType, LLVMValueRef?someValue) { LLVMTypeRef innerType = optionType.GetSubtypes()[1]; return(someValue == null ? LLVMSharp.LLVM.ConstNull(optionType) : builder.BuildStructValue( optionType, new LLVMValueRef[] { context.AsLLVMValue(true), someValue.Value }, "option")); }