In imperative languages, it is trivial to devise a programming test of language's use of "value semantics" or "reference semantics". One could do the following and check the value of `a` (where `Vertex {one, two, three :: Integer}`):

```
a := Vertex 3 4 5
b := a
one b   :=  6
two b   :=  8
three b := 10

```

However, since variables are immutable in functional languages, this test won't work in such languages.

I know very little about Haskell (and functional programming in general), but my understanding is that it uses value semantics. Is it possible to devise a programming experiment that would distinguish between a "ref record" and a "val record" in Haskell?