Index: trunk/Include/Classes/System/Collections/Generic/List.ab
===================================================================
--- trunk/Include/Classes/System/Collections/Generic/List.ab	(revision 395)
+++ trunk/Include/Classes/System/Collections/Generic/List.ab	(revision 396)
@@ -4,6 +4,19 @@
 Namespace Generic
 
+Interface IEnumerable<T>
+	' Method
+	Function GetEnumerator() As IEnumerator<T>
+End Interface
+
+Interface IEnumerator<T>
+	' Methods
+	Function MoveNext() As Boolean
+	Sub Reset()
+	' Property
+	Function Current() As T
+End Interface
+
 Class List<T>
-	Implements IEnumerable, IEnumerator
+	Implements IEnumerable<T>, IEnumerator<T>
 	items As *T
 	size As Long
@@ -138,5 +151,5 @@
 	@return	IEnumeratorインターフェイスが返る
 	*/
-	Function GetEnumerator() As IEnumerator
+	Function GetEnumerator() As IEnumerator<T>
 		Return This
 	End Function
@@ -173,10 +186,10 @@
 	@return	カレントオブジェクトが返る
 	*/
-	Function Current() As Object
+	Function Current() As T
 		If currentIndexForEnumerator = -1 Then
 			' MoveNextメソッドがReset後、一度も呼び出されなかった
 			Return Nothing
 		End If
-		Return items[currentIndexForEnumerator] As Object
+		Return items[currentIndexForEnumerator]
 	End Function
 End Class
Index: trunk/Include/system/enum.sbp
===================================================================
--- trunk/Include/system/enum.sbp	(revision 395)
+++ trunk/Include/system/enum.sbp	(revision 396)
@@ -21,6 +21,15 @@
 	End Sub
 
+	Function Operator() As Int64
+		Return This.value
+	End Function
 	Function Operator() As Long
 		Return This.value
+	End Function
+	Function Operator() As DWord
+		Return This.value
+	End Function
+	Function Operator() As Boolean
+		Return ( This.value <> 0 )
 	End Function
 
@@ -40,13 +49,13 @@
 		End If
 	End Function
-/*
-	Function Operator or (enumBase As EnumBase) As EnumBase
-		Return New EnumBase(This.value Or enumBase.value)
+
+	Function Operator or (enumBase As EnumBase) As Boolean
+		Return ( This.value or enumBase.value ) <> 0
 	End Function
 
-	Function Operator and (enumBase As EnumBase) As EnumBase
-		Return New EnumBase(This.value And enumBase.value)
+	Function Operator and (enumBase As EnumBase) As Boolean
+		Return ( This.value and enumBase.value ) <> 0
 	End Function
-
+/*
 	Function Operator xor (enumBase As EnumBase) As EnumBase
 		Return New EnumBase(This.value Xor enumBase.value)
