Question: I am trying to use a background image in my footer by adding an image from a subfolder, as well as have custom text go over the footer image. I tried to insert the footer image by `src` after the footer heading, but I end up having the image and text just be beside each other with no layer on top.

```css
footer {
    text-align: center;
    margin: 3px;
    padding: 5px;
    color: black;
}
```

```html
<footer>
    <img src="Images/ricepaper.png" alt="">
    <dl>
        <dt>
            <a id="Contact&nbsp;Us" style="color: #14ab3f"><b>Contact Us</b></a>
            <br>
            <br>
            <dd><b>City Manager</b>
            <dd><b>P.O. Box #####</b>
            <dd><b>City</b>
            <dd><b>### ###</b>
            </dd>
    </dl>
</footer>
```

Answer: 
Now, [Scryer](https://github.com/mthom/scryer-prolog/) supports `dif/2` with occurs-check when the corresponding flag is set:

```
?- use_module(library(dif)).
   true.
?- set_prolog_flag(occurs_check, true).
   true.
?- dif(-X,X).
   true.
?- dif(-X,Y).
   dif:dif(- X,Y).
?- dif(-X,X), X = a.
   X = a.

```
In my system, I made a new predicate `dif_with_occurs_check/2`. As the name says, it is `dif/2` with occurs check, so no need to set a flag. But there is an additional benefit, `dif/2` is optimized to listen to fewer variables:

```
/* listens only to changes in X */
?- dif(X, f(Y)).
/* listens to changes in X and Y */
?- dif_with_occurs_check(X, f(Y)).

```

This is necessary, so that we can wake up `dif_with_occurs_check/2` when change the variable `Y` for example to `Y = X`. `dif_with_occurs_check/2` will then remove its own constraint `X = f(Y)` which has become `X = f(X)` and therefore obsolete.

```
?- dif(X,f(Y)), X = Y.
X = Y,
dif(Y, f(Y))
?- dif_with_occurs_check(X,f(Y)), X = Y.
X = Y

```

**Open Source: Module "herbrand"**  

<https://github.com/jburse/jekejeke-devel/blob/master/jekmin/headless/jekmin/reference/term/herbrand.p>