Dieses Paket stellt strikte Versionen einiger standardmäßiger Haskell-Datentypen bereit
(Paare, Maybe und Either). Es enthält außerdem strikte IO-Operationen.
Es ist allgemein bekannt, dass lazy Datenstrukturen zu Space-Leaks führen können.
Dieses Problem tritt besonders dann auf, wenn lazy Datenstrukturen verwendet werden, um
den Zustand einer langlebigen Anwendung im Speicher zu halten. Eine gängige Lösung für dieses
Problem besteht darin, in jedem Codeabschnitt, der Ihren Zustand aktualisiert, 'seq' und dessen Varianten zu verwenden. Eine deutlich einfachere Lösung besteht jedoch darin, vollständig strikte Typen zum
Speichern solcher Zustandswerte zu verwenden. Unter „vollständig strikten Typen“ verstehen wir Typen, für deren Werte
gilt: Wenn sie in Weak-Head-Normalform sind, dann sind sie auch in
Normalform. Intuitiv bedeutet dies, dass Werte vollständig strikter Typen keine
unevaluierten Thunks enthalten können.
Um einen vollständig strikten Datentyp zu definieren, verwendet man typischerweise das folgende Rezept.
1. Machen Sie alle Felder jedes Konstruktors strikt; d. h., fügen Sie allen Feldern einen Bang hinzu.
2. Verwenden Sie für die Felder der Konstruktoren nur strikte Typen.
Die zweite Anforderung ist problematisch, da sie die Verwendung der standardmäßigen
Haskell-Typen 'Maybe', 'Either' und Paartypen ausschließt. Diese Bibliothek löst dieses Problem, indem
sie strikte Varianten dieser Typen sowie die entsprechenden Standard-
Hilfsfunktionen und Typklassen-Instanzen bereitstellt.
Beachten Sie, dass diese Bibliothek derzeit keine vollständig strikten Listen bereitstellt.
Sie können hinzugefügt werden, falls sie wirklich benötigt werden. In vielen Fällen möchte man
jedoch wahrscheinlich ungeboxte oder strikt geboxte Vektoren aus der Bibliothek 'vector'
(<http://hackage.haskell.org/package/vector>) anstelle strikter Listen verwenden.
Zudem möchte man statt 'String's wahrscheinlich strikte 'Text'-Werte
aus der Bibliothek 'text' (<http://hackage.haskell.org/package/text>) verwenden.
Diese Bibliothek kommt mit Batterien inklusive; d. h., Spiegel-Funktionen und
Instanzen der lazy Versionen in 'base'. Sie enthält außerdem Instanzen für
Typklassen aus den Paketen 'deepseq', 'binary' und 'hashable'.
Paths come from the repository package-file index for the observed builds. They describe archive/package associations, not every file that will exist on a running system after maintainer scripts, alternatives, generated state, diversions, or installation choices.
Jede Zeile ist Paketindex-Metadaten für eine Version, Architektur, Suite und ein Repository. Namen, URLs und Größen stammen aus der Quelle; ein Link ist ein veränderbarer Abrufort, kein Weitergabanspruch von OpenFactory.
Repository signatures authenticate metadata. Artifact hashing is recorded separately. Neither establishes package safety.
0.5.1-2.12 / x86_64Beobachtet Sep 1, 2026sha512 8d833a38e399…4f2d6352Prüfsumme der Quelle
Metadata observed; artifact bytes were not independently fetched or hashed by this catalog import. The digest below is source-reported.
Prüfsumme der Quelle (sha512): 8d833a38e399f7fb537cd52dc4e1233abcae833c14b021eef49419b8198da0d2fa44574811c58d4aecbc01015e801fb36bc6c749fcd28109d52fbff64f2d6352