summaryrefslogtreecommitdiff
path: root/fp1/week4/mart/StdSet.dcl
diff options
context:
space:
mode:
Diffstat (limited to 'fp1/week4/mart/StdSet.dcl')
-rw-r--r--fp1/week4/mart/StdSet.dcl25
1 files changed, 25 insertions, 0 deletions
diff --git a/fp1/week4/mart/StdSet.dcl b/fp1/week4/mart/StdSet.dcl
new file mode 100644
index 0000000..0c702ca
--- /dev/null
+++ b/fp1/week4/mart/StdSet.dcl
@@ -0,0 +1,25 @@
+definition module StdSet
+
+import StdClass
+
+:: Set a
+
+toSet :: [a] -> Set a | Eq a
+fromSet :: (Set a) -> [a]
+
+isEmptySet :: (Set a) -> Bool
+isDisjoint :: (Set a) (Set a) -> Bool | Eq a
+isSubset :: (Set a) (Set a) -> Bool | Eq a
+isStrictSubset :: (Set a) (Set a) -> Bool | Eq a
+memberOfSet :: a (Set a) -> Bool | Eq a
+union :: (Set a) (Set a) -> Set a | Eq a
+intersection :: (Set a) (Set a) -> Set a | Eq a
+nrOfElements :: (Set a) -> Int
+without :: (Set a) (Set a) -> Set a | Eq a
+
+product :: (Set a) (Set b) -> Set (a,b)
+
+instance zero (Set a)
+instance == (Set a) | Eq a
+
+powerSet :: (Set a) -> Set (Set a) | Eq a