Das Voranstellen einer Tilde (~ ) vor ein Pattern hat zur Folge, dadas Pattern nicht zu Beginn einer Funktion überprüft wird, sondern erst zu dem Zeitpunkt, zu dem es tatsächlich benötigt wird. Dies gestattet es, ein Pattern zu erzeugen, das zu jedem Ausdruck pa(z.B. ein undefinierter Ausdruck oder eine noch nicht vorhandene Response des Betriebssystems, vgl. Ein- und Ausgabe):
((x, y) -> 0) undefined = { undefined}
Fehlermeldung, da 'undefined' nicht die Form (x, y) hat. ('undefined' ist ein Goferausdruck, der bei seiner Auswertung zu einem 'run-time error' führt)
( ~ (x, y) -> 0) undefined = 0
Bei der Ausführung wird nicht überprüft, ob das Argument (undefined) die Form des Pattern hat. Da der Rumpf der Funktion das Argument nicht benötigt, liefert die Funktion ein Ergebnis.