Solving `Passport Application` with Haskell

Real‑world UK passport & citizenship complexity

  • Multiple commenters describe highly variable document demands for children born abroad: birth certificates (often for parents and grandparents), family registers, marriage certificates, translations, proof from third‑party citizens, and full photocopies of foreign passports.
  • Requirements appear inconsistent across cases and even siblings; outcomes depend heavily on which examiner handles the file.
  • Edge cases around “double descent,” historical sexist laws, unmarried parents, and birth year (especially around 1983 and 2006 rule changes) lead to surprising results, including people effectively becoming British only retroactively.
  • Names and surnames can be fluid in the UK system, leading to mismatches across documents and previous decisions being “forgotten,” making applications unpredictable.
  • Communication between call‑center staff and caseworkers is described as opaque and contradictory.

Online UK passport system vs other countries

  • Several people praise the UK online renewal process as fast, clear, and well‑designed, with good accessibility and simple mobile photo capture; renewals from abroad can be completed in weeks by mail.
  • First‑time or complex applications remain tedious: interviews, “responsible person” signatures, and long evidence chains.
  • Other countries are contrasted:
    • Canada, Sweden, Belgium: more paper, in‑person visits, and delays.
    • France and Germany: some report smooth, single‑visit processes; others note new applications are still much harder than renewals.

Government IT, law, and outsourcing

  • Building services like HM Passport Office means encoding centuries of evolving legislation; when laws change, scattered business rules must be updated across systems.
  • Outsourced projects are said to incentivize long, expensive engagements with minimal quality, with weak accountability and procurement based on static specs rather than domain insight.
  • Some argue for in‑house engineering and reusable, rules‑oriented or DSL‑based systems to model law, citing prior work formalising British nationality and Dutch tax rules.

Haskell, syntax, and tooling

  • Haskell is described as “intuitive after explanation” but opaque at first, due to heavy use of operators and combinators whose meaning depends on context and abstract concepts (monads, applicatives).
  • Defenders argue every language has non‑obvious syntax, and Haskell’s operator count is comparable to mainstream languages once you’ve learned the basics; its operators have a consistent visual “design language.”
  • There is disagreement on tooling: some recall poor historical tooling; others claim modern Haskell has solid LSP support, formatters, debugging tools, and multiple backends, disputing the “bad tooling” reputation.

Bureaucracy and citizenship more broadly

  • Stories from Japan (residence cards, MyNumber, driving licence conversion) highlight increasing bureaucratic “side quests” and cumbersome online booking.
  • Qatar is cited as an extreme case for naturalisation difficulty.
  • A comparison is drawn to countries with central citizen registries, though others argue many states can’t reliably maintain such a list due to births abroad, territorial changes, and registration rules.
  • US birthright citizenship is lauded as an “optimization,” though rare exceptions (e.g., children of diplomats) complicate even that.