A property of [[Purity|pure]] [[Functions|functions]] that they can always be replaced by the expression they return.

For example `add` is referentially transparent, so
```haskell
a = add 1 3
```

could be replaced with
```haskell
a = 4
```

at design- or compile-time, because `add` always returns the same result and performs no observable side-effects.