Este paquete proporciona versiones estrictas de algunos tipos de datos estándar de Haskell
(pares, Maybe y Either). También contiene operaciones de IO estrictas.
Es de conocimiento común que las estructuras de datos lazy pueden provocar space-leaks.
Este problema es especialmente prominente cuando se usan estructuras de datos lazy para almacenar
el estado de una aplicación de larga ejecución en memoria. Una solución habitual a este
problema es usar 'seq' y sus variantes en cada fragmento de código que actualiza
su estado. Sin embargo, una solución mucho más sencilla es usar tipos totalmente estrictos para
almacenar dichos valores de estado. Por «tipos totalmente estrictos» entendemos tipos para cuyos valores
se cumple que, si están en forma normal de cabeza débil (weak-head normal form), entonces también están en
forma normal. Intuitivamente, esto significa que los valores de tipos totalmente estrictos no pueden
contener thunks no evaluados.
Para definir un tipo de datos totalmente estricto, normalmente se usa la siguiente receta.
1. Haga estrictos todos los campos de cada constructor; es decir, añada un bang a todos los campos.
2. Use solo tipos estrictos para los campos de los constructores.
El segundo requisito es problemático, ya que descarta el uso de los tipos estándar
de Haskell 'Maybe', 'Either' y de pares. Esta biblioteca resuelve este problema
proporcionando variantes estrictas de estos tipos y sus correspondientes funciones de soporte
estándar e instancias de clases de tipos.
Tenga en cuenta que esta biblioteca actualmente no proporciona listas totalmente estrictas.
Se pueden añadir si realmente se requieren. Sin embargo, en muchos casos probablemente
se quiera usar vectores unboxed o boxed estrictos de la biblioteca 'vector'
(<http://hackage.haskell.org/package/vector>) en lugar de listas estrictas.
Además, en lugar de 'String's probablemente se quiera usar valores 'Text' estrictos
de la biblioteca 'text' (<http://hackage.haskell.org/package/text>).
Esta biblioteca viene con baterías incluidas; es decir, funciones espejo e
instancias de las versiones lazy en 'base'. También incluye instancias para
clases de tipos de los paquetes 'deepseq', 'binary' y '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.
Cada fila es metadato del índice de paquetes para una versión, arquitectura, suite y repositorio. Nombres, URL y tamaños vienen de la fuente; un enlace es un punto de descarga que puede cambiar, no una redistribución de OpenFactory.
Repository signatures authenticate metadata. Artifact hashing is recorded separately. Neither establishes package safety.
0.5.1-bp160.1.11 / aarch64Observado Sep 1, 2026sha512 945fec11d8eb…b80e09ffResumen de la fuente
Metadata observed; artifact bytes were not independently fetched or hashed by this catalog import. The digest below is source-reported.
Resumen de la fuente (sha512): 945fec11d8eb79e42062cde68f080caa030f803df1054aaa90782831bcf4c56071dba393496b1647a85bccf174dac12ca784a94023a01e03d2767c8db80e09ff
0.5.1-bp160.1.11 / ppc64leObservado Sep 1, 2026sha512 fc059663afeb…7115abffResumen de la fuente
Metadata observed; artifact bytes were not independently fetched or hashed by this catalog import. The digest below is source-reported.
Resumen de la fuente (sha512): fc059663afeb4127480e6a0f2697fef477d57fb59a63b7388d054fb9bd6b25684b306a208c18a97e351e939cfade8b38c1e296a14b7b8691e74335a07115abff
0.5.1-bp160.1.11 / x86_64Observado Sep 1, 2026sha512 9f6b8e6b7b05…dce04670Resumen de la fuente
Metadata observed; artifact bytes were not independently fetched or hashed by this catalog import. The digest below is source-reported.
Resumen de la fuente (sha512): 9f6b8e6b7b05ed0f3cfc2e7539d770fe25ff75d7acbeeff45a1e597d1bc8bc8561b8c981cac774d8595b76fe70200360e68f654f8d9a8543c62b4a02dce04670