--- /dev/null
+import "Prelude"
+
+data XYZ = XYZ { x :: Double, y :: Double, z :: Double }
+deriving instance Show XYZ
+
+updateX x' XYZ {..} = XYZ {x', ..}
+
+main = print $ updateX 5 $ XYZ { x = 4, y = 3, .. }
+ where
+ z = 2
+--
+XYZ 5.0 3.0 2.0
+()
+--
+import "Prelude"
+
+main = ()
+ where
+ constraint R { a :: Integer, b :: Integer, label :: String }
+
+ -R { a = 0, .. } => print "Final: b = \(?b), label = \(?label)"
+ -R { ?a, ?b, .. } => R { a=?a-1, b=?b+1, .. }
+
+ True => R { a = 5, b = 5, label = "My label" }
+--
+Final: b = 10, label = My label
+()
\ No newline at end of file