 }
 
 public struct X86MMXType: LLVMType {
+  public init() {}
   public func asLLVM() -> LLVMTypeRef {
     return LLVMX86MMXType()
   }

public struct ArrayType: LLVMType {
  public let elementType: LLVMType
  public let count: Int
  public static func constant(_ values: [LLVMValue], type: LLVMType) -> LLVMValue {
    var vals = values.map { $0.asLLVM() as Optional }
    return vals.withUnsafeMutableBufferPointer { buf in


public struct MetadataType: LLVMType {
  internal let llvm: LLVMTypeRef
  public init(llvm: LLVMTypeRef) {
    self.llvm = llvm
  }
  public func asLLVM() -> LLVMTypeRef {
    return llvm
  }
}

public struct LabelType: LLVMType {
  public init() {}
  public func asLLVM() -> LLVMTypeRef {
    return LLVMLabelType()
  }
