]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.runtime/scl/Set.scl
Implemented many type class instances for Set.T
[simantics/platform.git] / bundles / org.simantics.scl.runtime / scl / Set.scl
index 2bf2911c5631cc4e33938711b3a1f6ea86c16007..34033d91ef928ff9e52f2094f1db6c225f22ddd9 100644 (file)
@@ -11,13 +11,31 @@ importJava "java.util.Set" where
     iterator :: T a -> Iterator.T a
 
 @inline
-iter :: (a -> <e> ()) -> T a -> <e> ()
+iter :: (a -> <e> b) -> 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
+iterI :: (Integer -> a -> <e> b) -> T a -> <e> ()
+iterI f s = runProc (Iterator.iterI 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))
+
+importJava "java.util.Collections" where
+    singleton :: a -> T a
+
+    @JavaName emptySet
+    empty :: T a
+
+importJava "gnu.trove.set.hash.THashSet" where
+    @JavaName "<init>"
+    fromList :: [a] -> T a
+
+importJava "java.util.ArrayList" where
+    @JavaName "<init>"
+    toList :: T a -> [a]