anchor.diff:          sprintf "{ name = %s; type = %A; api = %A }" name x.Type x.APIVersion
       
   
  -and PhysicalDeviceGroup internal(instance : Instance, devices : PhysicalDevice[], enabledInstanceExtensions : list<string>) =
  -    inherit PhysicalDevice(instance, devices.[0].Handle, enabledInstanceExtensions)
  +and PhysicalDeviceGroup internal(instance : Instance, devices : PhysicalDevice[], enabledInstanceExtensions : list<string>, apiVersion : Version) =
  +    inherit PhysicalDevice(instance, devices.[0].Handle, enabledInstanceExtensions, apiVersion)
      
       let mask = devices |> Seq.map (fun d -> d.DeviceMask) |> Seq.fold (|||) 0u
   
  
positive.code: 
          )
  
  and PhysicalDevice internal(instance : Instance, handle : VkPhysicalDevice, enabledInstanceExtensions : list<string>) =
      static let allFormats = Enum.GetValues(typeof<VkFormat>) |> unbox<VkFormat[]>
  
      let availableLayers = 
  
negative.code:     override x.Release() =
          VkRaw.vkDestroyInstance(instance, NativePtr.zero)
          instance <- VkInstance.Zero
          
      member x.EnabledLayers = layers
      member x.EnabledExtensions = extensions
  
  