--- /dev/null
+import "Iterator" as Iterator
+
+importJava "java.util.Set" where
+ data T a
+
+ contains :: T a -> a -> Boolean
+ size :: T a -> Integer
+ isEmpty :: T a -> Boolean
+
+ @private
+ iterator :: T a -> Iterator.T a
+
+@inline
+iter :: (a -> <e> ()) -> T a -> <e> ()
+iter f s = runProc (Iterator.iter f (iterator s))
+
+@inline
+iterB :: (a -> <e> Boolean) -> T a -> <e> Boolean
+iterB f s = runProc (Iterator.iterB f (iterator s))
+
+@inline
+fold :: (a -> b -> <e> a) -> a -> T b -> <e> a
+fold f init s = runProc (Iterator.fold f init (iterator s))