Index: trunk/Include/Classes/System/Blittable.ab
===================================================================
--- trunk/Include/Classes/System/Blittable.ab	(revision 332)
+++ trunk/Include/Classes/System/Blittable.ab	(revision 392)
@@ -19,4 +19,18 @@
 		End Function
 
+		Override Function Equals(y As Object) As Boolean
+			If Object.ReferenceEquals(GetType(), y.GetType()) Then
+				Return Equals(y As System.SByte)
+			End If
+		End Function
+
+		Function Equals(y As SByte) As Boolean
+			Return value = y
+		End Function
+
+		Override Function GetHashCode() As Long
+			Return value
+		End Function
+
 		Function Operator() As SByte
 			Return value
@@ -46,4 +60,18 @@
 		End Function
 
+		Override Function Equals(y As Object) As Boolean
+			If Object.ReferenceEquals(GetType(), y.GetType()) Then
+				Return Equals(y As System.Byte)
+			End If
+		End Function
+
+		Function Equals(y As Byte) As Boolean
+			Return value = y
+		End Function
+
+		Override Function GetHashCode() As Long
+			Return value
+		End Function
+
 		Function Operator() As Byte
 			Return value
@@ -73,4 +101,18 @@
 		End Function
 
+		Override Function Equals(y As Object) As Boolean
+			If Object.ReferenceEquals(GetType(), y.GetType()) Then
+				Return Equals(y As System.Int16)
+			End If
+		End Function
+
+		Function Equals(y As Integer) As Boolean
+			Return value = y
+		End Function
+
+		Override Function GetHashCode() As Long
+			Return value
+		End Function
+
 		Function Operator() As Integer
 			Return value
@@ -100,4 +142,18 @@
 		End Function
 
+		Override Function Equals(y As Object) As Boolean
+			If Object.ReferenceEquals(GetType(), y.GetType()) Then
+				Return Equals(y As UInt16)
+			End If
+		End Function
+
+		Function Equals(y As Word) As Boolean
+			Return value = y
+		End Function
+
+		Override Function GetHashCode() As Long
+			Return value
+		End Function
+
 		Function Operator() As Word
 			Return value
@@ -127,4 +183,18 @@
 		End Function
 
+		Override Function Equals(y As Object) As Boolean
+			If Object.ReferenceEquals(GetType(), y.GetType()) Then
+				Return Equals(y As Int32)
+			End If
+		End Function
+
+		Function Equals(y As Long) As Boolean
+			Return value = y
+		End Function
+
+		Override Function GetHashCode() As Long
+			Return value
+		End Function
+
 		Function Operator() As Long
 			Return value
@@ -154,4 +224,18 @@
 		End Function
 
+		Override Function Equals(y As Object) As Boolean
+			If Object.ReferenceEquals(GetType(), y.GetType()) Then
+				Return Equals(y As UInt32)
+			End If
+		End Function
+
+		Function Equals(y As DWord) As Boolean
+			Return value = y
+		End Function
+
+		Override Function GetHashCode() As Long
+			Return value As Long
+		End Function
+
 		Function Operator() As DWord
 			Return value
@@ -181,4 +265,18 @@
 		End Function
 
+		Override Function Equals(y As Object) As Boolean
+			If Object.ReferenceEquals(GetType(), y.GetType()) Then
+				Return Equals(y As System.Int64)
+			End If
+		End Function
+
+		Function Equals(y As Int64) As Boolean
+			Return value = y
+		End Function
+
+		Override Function GetHashCode() As Long
+			Return _System_HashFromUInt(value As QWord)
+		End Function
+
 		Function Operator() As Int64
 			Return value
@@ -208,4 +306,18 @@
 		End Function
 
+		Override Function Equals(y As Object) As Boolean
+			If Object.ReferenceEquals(GetType(), y.GetType()) Then
+				Return Equals(y As UInt64)
+			End If
+		End Function
+
+		Function Equals(y As QWord) As Boolean
+			Return value = y
+		End Function
+
+		Override Function GetHashCode() As Long
+			Return _System_HashFromUInt(value)
+		End Function
+
 		Function Operator() As QWord
 			Return value
@@ -235,4 +347,18 @@
 		End Function
 
+		Override Function Equals(y As Object) As Boolean
+			If Object.ReferenceEquals(GetType(), y.GetType()) Then
+				Return Equals(y As System.Single)
+			End If
+		End Function
+
+		Function Equals(y As Single) As Boolean
+			Return value = y
+		End Function
+
+		Override Function GetHashCode() As Long
+			Return GetDWord(VarPtr(value)) As Long
+		End Function
+
 		Function Operator() As Single
 			Return value
@@ -262,4 +388,18 @@
 		End Function
 
+		Override Function Equals(y As Object) As Boolean
+			If Object.ReferenceEquals(GetType(), y.GetType()) Then
+				Return Equals(y As System.Double)
+			End If
+		End Function
+
+		Function Equals(y As Double) As Boolean
+			Return value = y
+		End Function
+
+		Override Function GetHashCode() As Long
+			Return _System_HashFromUInt(GetQWord(VarPtr(value)))
+		End Function
+
 		Function Operator() As Double
 			Return value
