Tackling the Awkward Squad¶
Peyton Jones, S. (2001). Tackling the Awkward Squad: Monadic Input/Output, Concurrency, Exceptions, and Foreign-Language Calls in Haskell. Engineering Theories of Software Construction.
Cited by¶
2 citations across 2 artifacts.
Each citation links to the sentence it supports in the citing article.
Primes¶
- Side Effect
- Programming languages: a function with a side effect mutates state outside its return value (globals, files, databases, network); functional programming's central discipline is making effects explicit via monads, effect systems, or
IOso behavior is predictable from types.This sourceCanonical account of making side effects explicit in a pure functional language via the IO monad and effect typing.
- Programming languages: a function with a side effect mutates state outside its return value (globals, files, databases, network); functional programming's central discipline is making effects explicit via monads, effect systems, or
Mechanisms¶
- Thunk or Lazy Promise
- The discipline is to keep thunks pure where possible and to force eagerly at a known-safe point
This sourceIn Engineering Theories of Software Construction. IOS Press (2001). Shows how explicitly evaluating a lazy expression in the I/O layer fixes when it is forced and makes an exceptional value catchable at that point.
- The discipline is to keep thunks pure where possible and to force eagerly at a known-safe point
Verification¶
Does it exist? Not checked yet. This entry carries no identifier to resolve. It was extracted from the citation as written in the article, normalized, and deduplicated against the rest of the registry.
Does it back the claim? Not recorded. Neither this nor any other of the 2 citations of this work carries a recorded support check.
Support is checked per citation rather than per work — the same source can be cited soundly in one article and wrongly in another. Per-citation recording began recently, so a citation with no recorded check is a gap in the record rather than evidence it went unchecked.
See how references were verified.
Registry ID ref:a00a8266146a · see in the full table