Eine Definition wird als “verwendet” betrachtet, wenn (a) sie exportiert wird, oder (b) sie auf der rechten Seite einer anderen Definition erwähnt wird, die verwendet wird, oder (c) die Funktion, die sie definiert, beginnt mit einem Unterstrich. Der letzte Fall bietet eine Möglichkeit, nicht verwendete Bindungswarnungen selektiv zu unterdrücken. Im Allgemeinen ist eine Lazy-Musterbindung p = e ein No-Op, wenn p keine Variablen bindet. Die Motivation für die Zulassung einsamer Wildcard-Muster ist, dass sie sich nicht sehr von _v = rhs3 unterscheiden, was keine Warnung auslöst; und sie können nützlich sein, um eine Typeinschränkung hinzuzufügen, z. B. _ = x::Int. Ein geknalltes Muster (siehe Bang-Muster und Strict Haskell) ist kein No-Op, da es die Auswertung erzwingt und als Alternative zu seq nützlich ist. Wenn Sie möchten, dass GHC überprüft, ob jedes Mustersynonym über eine Typsignatur verfügt, verwenden Sie die Option -Wmissing-pattern-synonym-signatures. Wenn diese Option in Verbindung mit -Wmissing-exported-signatures verwendet wird, müssen nur exportierte Mustersynonyme eine Typsignatur haben.

GHC meldet auch den abgeleiteten Typ. Diese Option ist standardmäßig deaktiviert. Beachten Sie, dass -Wunused-matches nicht vor Variablen warnt, die aus Mustern auf Typebene entstehen, wie sie in Typfamilien- und Datenfamilieninstanzen gefunden werden. Dies muss separat über das Flag -Wunused-type-patterns aktiviert werden. GHC verfügt über eine Reihe von Optionen, die auswählen, welche Typen von nicht schwerwiegenden Fehlermeldungen, auch als Warnungen bezeichnet, während der Kompilierung generiert werden können. Standardmäßig erhalten Sie einen Standardsatz von Warnungen, die im Allgemeinen auf Fehler in Ihrem Programm hinweisen. Dies sind: -fwarn-overlapping-patterns, -fwarn-warnings-deprecations, -fwarn-deprecated-flags, -fwarn-duplicate-exports, -fwarn-missing-fields, -fwarn-missing-methods, -fwarn-lazy-unlifted-bindings, -fwarn-wrong-do-bind, and -fwarn-do-bind, Die folgenden Flags sind einfache Möglichkeiten, Standard-“Pakete” von Warnungen auszuwählen: Aktiviert Warnungen, die in Zukunft standardmäßig aktiviert werden, aber in normalen Kompilierungen vorerst deaktiviert bleiben. Auf diese Weise können Bibliotheksautoren, die ihre Codezukunft in Zukunft kompatibel machen möchten, sich an neue Funktionen anpassen, bevor sie überhaupt Warnungen generieren. Entschärfen Sie fehlerweise (Fehler bei Namen mit einem führenden Unterstrich (z. B. “_”, “_foo”, “_bar”)) bis zur Laufzeit.

Dadurch werden die Fehler, die durch typisierte Bohrungen entstehen, in Warnungen umgewandelt.

Abmahnungen schreiben Muster