# Pattern p contains duplicate variable x¶

A pattern is not allowed to contain the same variable
more than once. For example, the following definition is not allowed,
because the pattern `(x,x)`

contains two occurrences of the variable `x`

.

```
f :: N*N -> N
f(x,x) = 3
f(x,y) = 7
```

If you want to define a function which returns `3`

whenever its two
arguments are equal, and `7`

otherwise, you could define it like
this, using a case expression

```
f :: N*N -> N
f(x,y) = {? 3 if x == y, 7 otherwise ?}
```