diff --git a/call-alloy.cabal b/call-alloy.cabal
--- a/call-alloy.cabal
+++ b/call-alloy.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           call-alloy
-version:        0.5
+version:        0.5.0.1
 synopsis:       A simple library to call Alloy given a specification
 description:    Please see the README on GitHub at <https://github.com/marcellussiegburg/call-alloy#readme>
 category:       Language
@@ -21,6 +21,9 @@
     README.md
     LICENSE
     ChangeLog.md
+    test/unit/readmeExampleInstance.hs
+    test/unit/readmeExampleResult.hs
+    test/unit/readmeExampleSpecification.als
 data-files:
     alloy/RunAlloy.class
     alloy/SATSolver.class
diff --git a/test/unit/readmeExampleInstance.hs b/test/unit/readmeExampleInstance.hs
new file mode 100644
--- /dev/null
+++ b/test/unit/readmeExampleInstance.hs
@@ -0,0 +1,137 @@
+fromList [
+  ( Signature {scope = Nothing, sigName = "$withFlow_x"},
+    Entry {
+      annotation = Just Skolem,
+      relation = fromList [
+        ( "",
+          Single (fromList [
+            Object {objSig = "Node", identifier = 1}
+            ]))
+        ]
+      }),
+  ( Signature {scope = Nothing, sigName = "$withFlow_y"},
+    Entry {
+      annotation = Just Skolem,
+      relation = fromList [
+        ( "",
+          Single (fromList [
+            Object {objSig = "Node", identifier = 0}
+            ]))
+        ]
+      }),
+  ( Signature {scope = Nothing, sigName = "Int"},
+    Entry {
+      annotation = Nothing,
+      relation = fromList [
+        ( "",
+          Single (fromList [
+            NumberObject {number = -4},
+            NumberObject {number = -3},
+            NumberObject {number = -2},
+            NumberObject {number = -1},
+            NumberObject {number = 0},
+            NumberObject {number = 1},
+            NumberObject {number = 2},
+            NumberObject {number = 3}
+            ]))
+        ]
+      }),
+  ( Signature {scope = Nothing, sigName = "String"},
+    Entry {
+      annotation = Nothing,
+      relation = fromList [("", EmptyRelation)]
+      }),
+  ( Signature {scope = Nothing, sigName = "end"},
+    Entry {
+      annotation = Nothing,
+      relation = fromList [
+        ( "",
+          Id (NumberObject {number = 0}))
+        ]
+      }),
+  ( Signature {scope = Nothing, sigName = "integers"},
+    Entry {
+      annotation = Nothing,
+      relation = fromList [
+        ( "",
+          Single (fromList [
+            NumberObject {number = -4},
+            NumberObject {number = -3},
+            NumberObject {number = -2},
+            NumberObject {number = -1},
+            NumberObject {number = 0},
+            NumberObject {number = 1},
+            NumberObject {number = 2},
+            NumberObject {number = 3}
+            ]))
+        ]
+      }),
+  ( Signature {scope = Nothing, sigName = "loop"},
+    Entry {
+      annotation = Nothing,
+      relation = fromList [
+        ( "",
+          Id (NumberObject {number = 0}))
+        ]
+      }),
+  ( Signature {scope = Nothing, sigName = "none"},
+    Entry {
+      annotation = Nothing,
+      relation = fromList [("", EmptyRelation)]
+  }),
+  ( Signature {scope = Nothing, sigName = "univ"},
+    Entry {
+      annotation = Nothing,
+      relation = fromList [
+        ( "",
+          Single (fromList [
+            Object {objSig = "Node", identifier = 0},
+            Object {objSig = "Node", identifier = 1},
+            NumberObject {number = -4},
+            NumberObject {number = -3},
+            NumberObject {number = -2},
+            NumberObject {number = -1},
+            NumberObject {number = 0},
+            NumberObject {number = 1},
+            NumberObject {number = 2},
+            NumberObject {number = 3}
+            ]))
+        ]
+      }),
+  ( Signature {scope = Just "seq", sigName = "Int"},
+    Entry {
+      annotation = Nothing,
+      relation = fromList [
+        ( "",
+          Single (fromList [
+            NumberObject {number = 0},
+            NumberObject {number = 1},
+            NumberObject {number = 2}
+            ]))
+        ]
+      }),
+  ( Signature {scope = Just "this", sigName = "Node"},
+    Entry {
+      annotation = Nothing,
+      relation = fromList [
+        ( "",
+          Single (fromList [
+            Object {objSig = "Node", identifier = 0},
+            Object {objSig = "Node", identifier = 1}
+            ])),
+        ( "flow",
+          Triple (fromList [
+            ( Object {objSig = "Node", identifier = 1},
+              Object {objSig = "Node", identifier = 0},
+              NumberObject {number = 3})
+            ])),
+        ( "stored",
+          Double (fromList [
+            ( Object {objSig = "Node", identifier = 0},
+              NumberObject {number = 0}),
+            ( Object {objSig = "Node", identifier = 1},
+              NumberObject {number = 1})
+            ]))
+        ]
+      })
+  ]
diff --git a/test/unit/readmeExampleResult.hs b/test/unit/readmeExampleResult.hs
new file mode 100644
--- /dev/null
+++ b/test/unit/readmeExampleResult.hs
@@ -0,0 +1,7 @@
+(
+  fromList [Node 0,Node 1],
+  fromList [(Node 0,0),(Node 1,1)],
+  fromList [(Node 1,Node 0,3)],
+  fromList [Node 1],
+  fromList [Node 0]
+  )
diff --git a/test/unit/readmeExampleSpecification.als b/test/unit/readmeExampleSpecification.als
new file mode 100644
--- /dev/null
+++ b/test/unit/readmeExampleSpecification.als
@@ -0,0 +1,20 @@
+abstract sig Node {
+  flow : Node -> lone Int,
+  stored : one Int
+} {
+  stored >= 0
+  all n : Node | some flow[n] implies flow[n] >= 0
+  no flow[this]
+}
+
+fun currentFlow(x, y : one Node) : Int {
+  let s = x.stored, f = x.flow[y] | s < f implies s else f
+}
+
+pred withFlow[x, y : one Node] {
+  currentFlow[x, y] > 0
+}
+
+pred show {}
+
+run withFlow for 3 Int, 2 Node
