3 data XYZ = XYZ { x :: Double, y :: Double, z :: Double }
4 deriving instance Show XYZ
6 updateX x' XYZ {..} = XYZ {x', ..}
8 main = print $ updateX 5 $ XYZ { x = 4, y = 3, .. }
19 constraint R { a :: Integer, b :: Integer, label :: String }
21 -R { a = 0, .. } => print "Final: b = \(?b), label = \(?label)"
22 -R { ?a, ?b, .. } => R { a=?a-1, b=?b+1, .. }
24 True => R { a = 5, b = 5, label = "My label" }
26 Final: b = 10, label = My label