 {#pointer *aiLogStream as LogStreamPtr -> LogStream#}
 
 data Quaternion = Quaternion {
-    w'Quaternion :: Float
-  , x'Quaternion :: Float
-  , y'Quaternion :: Float
-  , z'Quaternion :: Float
+    quaternionW :: Float
+  , quaternionX :: Float
+  , quaternionY :: Float
+  , quaternionZ :: Float
   } deriving (Show)
 {#pointer *aiQuaternion as QuaternionPtr -> Quaternion#}
 
 data Vector2D = Vector2D {
-    x'Vector2D :: Float
-  , y'Vector2D :: Float
+    vector2dX :: Float
+  , vector2dY :: Float
   } deriving (Show)
 {#pointer *aiVector2D as Vector2DPtr -> Vector2D#}
 
 data Vector3D = Vector3D {
-    x'Vector3D :: Float
-  , y'Vector3D :: Float
-  , z'Vector3D :: Float
+    vector3dX :: Float
+  , vector3dY :: Float
+  , vector3dZ :: Float
   } deriving (Show)
 {#pointer *aiVector3D as Vector3DPtr -> Vector3D#}
 

{#pointer *aiString as StringPtr -> AiString#}

data Matrix3x3 = Matrix3x3 {
  matrix'Matrix3x3 :: Vector (Vector Float)
  } deriving (Show)
{#pointer *aiMatrix3x3 as Matrix3x3Ptr -> Matrix3x3#}

data Matrix4x4 = Matrix4x4 {
  matrix'Matrix4x4 :: Vector (Vector Float)
  } deriving (Show)
{#pointer *aiMatrix4x4 as Matrix4x4Ptr -> Matrix4x4#}


{#enum aiPropertyTypeInfo as PropertyTypeInfo {underscoreToCase} deriving (Show, Eq)#}

data Plane = Plane {
    planeA :: Float
  , planeB :: Float
  , planeC :: Float
  , planeD :: Float
  } deriving (Show)
{#pointer *aiPlane as PlanePtr -> Plane#}

data Ray = Ray {
    rayPos :: Vector3D
  , rayDir :: Vector3D
  } deriving (Show)
{#pointer *aiRay as RayPtr -> Ray#}

data Color3D = Color3D {
    color3dR :: Float
  , color3dG :: Float
  , color3dB :: Float
  } deriving (Show)
{#pointer *aiColor3D as Color3DPtr -> Color3D#}

data Color4D = Color4D {
    color4dR :: Float
  , color4dG :: Float
  , color4dB :: Float
  , color4dA :: Float
  } deriving (Show)
{#pointer *aiColor4D as Color4DPtr -> Color4D#}

data MemoryInfo = MemoryInfo {
    textures   :: CUInt
  , materials  :: CUInt
  , meshes     :: CUInt
  , nodes      :: CUInt
  , animations :: CUInt
  , cameras    :: CUInt
  , lights     :: CUInt
  , total      :: CUInt
  } deriving (Show)
{#pointer *aiMemoryInfo as MemoryInfoPtr -> MemoryInfo#}

