7 ms·
Solving `Passport Application` with Haskell
- sevensor 1y agoI seem to recall playing a version of this game as a text adventure. Douglas Adams was involved? But not Hitchhiker’s Guide.
- deleted 1y ago[deleted]
- ggm-at-algebras 1y agoIt's not "quite expensive" if you compare it to the Australian passport which is 2x as expensive and so notoriously badly bound, holders joke Australian Border Protection forces test for forgeries by checking if the blue cover curls: if not, it's a fake.
- yen223 1y agoThe Australian passport curl was so disappointing. I have a decade-old passport from my third-world country of origin, and that was in far better shape than my new Australian passport that was freshly delivered.
- new299 1y agoFor the benefit of anyone else doing this in Japan, these are the documents I had to submit. It will be different depending on circumstance, in particular I think the author may also be born outside the UK which may require other/more documents. Anyway I had to submit: Certified copy of my birth certificate, order from the UK general register office. Original (not photocopy) of Japanese family register and translation. Certificate of acceptance of notification of birth, original and translation. Original Marriage certificate and translation. Colour photocopy of every page of my childs Japanese passport. Copy photocopy of the passport of an American or British citizen who confirms that child is mine. The process is pretty unclear, and in general you seem to have to just keep submitting documents until they are satisfied.
- jameshh 1y ago> I think the author may also be born outside the UK which may require other/more documents In fact `applicant's father` (me) was born in the UK in this case, but `applicant's father's father` was not, the cause of the extra complications.
- crooked-v 1y agoI have to wonder how they would handle cases where a person doesn't have a legal father at all.
- lmm 1y agoIf you don't have a legal father then you can't claim British citizenship through your father. That's all pretty straightforward. (Although there's a fun case where you can claim citizenship by double descent because your ancestor wasn't able to claim citizenship because of sexist historical laws).
- new299 1y ago:( Weirdly this never came up for me (and I'm in a similar situation). I suspect what documents are ask for varies a lot by who is assessing the application. Hope it all works out!
- Cyph0n 1y ago> Colour photocopy of every page of my childs Japanese passport. But why?
- davchana 1y agoDon't know in this case, but some other countries ask for it to deduce your travel history (any current passport itself goes to them, with color copies of every page of old passports). Qatar wanted it because I shared name with somebody born 40 years before me.
- 1y ago
- mcsniff 1y agoNot only can you complete a UK Passport Application completely online (save for mailing any required documentations to HMPO), you can apply for a brand new passport as a "new" citizen (by adoption, naturalisation, or descent), online, from outside the UK, with just a mobile device without downloading some special app, including taking the photos. Sure, you can play it on "hard mode " and do it with paper and pen for the lulz, but my experience was extremely efficient, fast, and straight-forward.
- deleted 1y ago[deleted]
- deleted 1y ago[deleted]
- digianarchist 1y agoRenewed recently which was my first time using the online system. The entire process was exceptionally fast. I got the passport back in less than 2 weeks from California. In comparison my Canadian passport renewal (damaged after 3 years) from California took 4 months. Was entirely paper based and had ridiculous requirements such as requiring a reference and a photograph stamped by photographer. I know there's a digital pilot that's ongoing. That should be rolled out ASAP.
- kalleboo 1y agoJust being able to do it via mail sounds like luxury, to renew a Swedish passport you need to visit an embassy in person. And then in 2 weeks go back in person to pick it up. Really fun when the embassy is on the other side of the country and it means expensive plane trips. This was even more of a problem during COVID when borders were closed, since Sweden doesn't have embassies in every single country. And they expire in 5 years, not 10 like many other countries.
- OptionOfT 1y agoI need to renew my Belgian passport soon, and I live in the United States. Even though the consulate has my biometric data, I need to visit them in person. My only saving grace is that they sometimes visit my city., and I can register there. But that registration is only valid for 1 year, and they don't visit every year... And that is still 2h+ one way of travel for me, for something they already have.
- behnamoh 1y agoHaskell has an interesting syntax: it is intuitive after someone explains it to me, but not intuitive much before the explanation. I don't think it's because I'm used to Algol-based languages (C, Python, etc.). Every Haskell code I've seen is plagued with a plethora of operators which aim to make the code concise but it's not obvious what they do just by looking at them: https://academy.fpblock.com/haskell/tutorial/operators/ https://academy.fpblock.com/haskell/tutorial/operators/
- theLiminator 1y ago> it is intuitive after someone explains it to me, but not intuitive much before the explanation Isn't that pretty close to what something being intuitive means? Ie. something being intuitive means that it's easily understood or learned without requiring prior knowledge or instruction.
- gylterud 1y agoWith Haskell code it is often so that the code which actually does something is expressed in terms of combinators. These combinators are often very general, so one must do a bit of mental work to understand what they do in this particular context. Once you understand what the combinators do in a particular context the code often reads very easily, and what it does is very intuitive and natural. Best example I can think of is applicative parsers, where there are scattered <*> and <$> operators around, but if you just ignore them the parser just looks like a very intuitive description of what the expressions you want to parse look like.
- the_af 1y agoMost of the operators in that link are bog standard, and among the least interesting things to say about Haskell. If I didn't know programming and picked at random some Java program, I wouldn't understand much either. If I didn't take a single math course and I tried to read a math formula, I wouldn't understand the operators or anything either. The standard should be: how much can you understand once you learn the basics and do a couple of tutorials?
- tikhonj 1y ago
- phillipseamore 1y agoGreat read, best laugh of the day!
- tanh 1y agoI just went through hell this with one of my daughters. She was born in Japan and I had a hard time getting my mother’s surname matching what was on my birth certificate. Long story short, I demonstrated I was born in England and that I have citizenship (a passport) so no matter the possibility, it must be something that can be passed on. That doesn’t match the guidelines of documents required but it’s much less of a pain I reckon.
- charcircuit 1y ago>written in arcane language, in various texts called "acts of parliament". >British passports are issued to those who have a claim to British nationality under the British Nationality Act 1981. Has the British language really evolved that much in the last 50 years?
- hombre_fatal 1y agoThe more obvious interpretation is that it’s written in a bureaucratic way that not everyone would understand. Legal copy written in 2025 could be considered arcane. It doesn’t mean the language of the time is hard to understand.
- Jhsto 1y agoThere was a law change about European Union citizens settlement scheme last week. It's a UK law which is like a tutorial for getting to play the passport game. Anyway, the following was written this year. It starts off by checking if you are a Lisp interpreter: Changes to Appendix EU APP EU1. In Annex 1, in sub-paragraph (a) of the definition of ‘continuous qualifying period’, after “(b)(i)(ee) below”, insert “(or unless sub- paragraph (b)(i)(ii) below applies)”. APP EU2. In Annex 1, for sub-paragraph (b)(i)(ii) of the definition of ‘continuous qualifying period’, substitute: “(ii) (where the person has limited leave to enter or remain granted under paragraph EU3 or EU3A of this Appendix) any period(s) of absence which did not exceed a total of 30 months in the most recent 60-month period, as at the date of application or (as the case may be) at the date on which, under paragraph EU4, the Secretary of State is considering whether to grant them indefinite leave to enter or remain under paragraph EU2 or (as the case may be) EU2A, without a valid application under this Appendix having been made; or (jj) any period of absence due directly to an order or decision to which sub-paragraph (b)(iii) below refers, where that order or decision has been set aside or revoked; or”. APP EU3. In Annex 1, for sub-paragraph (c)(v) of the definition of ‘continuous qualifying period’, substitute: “(v) a relevant reference is concerned; or (vi) sub-paragraph (b)(i)(ii) above applies, where, under paragraph EU4 of this Appendix, the Secretary of State is considering whether to grant the person indefinite leave to enter or remain without a valid application under this Appendix having been made”.
- nkrisc 1y ago
- agnishom 1y agoThe sarcasm here is off the charts. My First Reaction: Given that the game can be read as a deconstruction of the concept of Nation States and Citizenship, why would the UK government run such a thing? After a few minutes: Oh wait a minute...
- imarkphillips 1y agoClassic!
- franciscop 1y agoI have noticed in Japan the crazy bureaucratization of document applications in the 7-8 years I've been living here. I've had 2 Japanese documents expire, "MyNumber" and "Driving License" in these years, and when trying to re-obtain them the process has become MUCH more complex. I'm bad at remembering all these processes in detail, but these are from memory: - For the mynumber, first time, it was a simple application, and maybe a trip or two to the City Hall. This was at a moment where Japan was trying everyone to have/use the mynumber system so that might've made it easier on purpose. - The second time I needed to book an appointment to request the application forms, which were (snail)mailed to me so then I could apply for the card. Yes, that sentence is as bad as it reads. Now the crazier one is the driving license (conversion process): - The first time I needed to get a translation, I went to JAL, showed my documents and paid, then received the translation. Took that and 2-3 documents, went to the driving license center, and gave the documents and passports and IDs. Waited few hours and had it done. Oh, I also got the Motorbike license for free. - The second time I am applying now: need to get the translation, first register online for the translation, for which you need to create an account and a 8-step process. Hard, but still doable [1]. Then you need to book a meeting for the driving license center. But it's very hard to do so, in fact I couldn't find the link at all. I went in person and they showed me a QR code for the booking, I suspect this is hard to find on purpose. Every place is full and cannot be booked, except for 1 of them, 2 months later. Okay, I try to apply. First basic questions, sure, then asks for travel history on my passport that I need to input manually. Note that dates in one part of the form are on the shape of `YYYYMMDD` and in other they are 3 fields of "YYYY", "MM", "DD" (3 different inputs), having to write a dozen of them is maddening. Oh wait, but if I want the motorbike one, which was automatic before, I now need a document from the Spanish embassy as well, another side quest. I'm hoping they can at least provide it in Japanese. I guess I'm halfway that process now, got a meeting booked 2 months later. [1] https://english.jaf.or.jp/driving-in-japan/drive-in-japan/about-dltas https://english.jaf.or.jp/driving-in-japan/drive-in-japan/ab...
- tecleandor 1y agoHa! I go to Japan every now and then, as I have friends there, and I've though a couple times about doing the Japanese driving license thing, that looked super easy back at the time (translate your current driving license, book a meeting in the exam center, do a short exam, and you're almost good to go). I was thinking about doing it in my next trip in two weeks, but seems like they've raised the difficulty several levels :) (Spaniard here too...)
- munchler 1y agoI love this. It starts as a parody, then slowly morphs into a serious and elegant solution to the "game". By the end, I almost wish I could play it myself. Bravo.
- Prcmaker 1y agoI think you can play, just much harder to get through the end game stage.
- returningfory2 1y agoAnyone can play but only ~70 million people can win :)
- UltraSane 1y agoHaskell itself is an amazing language once it "clicks". But all the tooling around Haskell is just really bad.
- chii 1y agoi think the tooling improves with popularity, so it's a bit of a chicken/egg problem. But with the recent LSP decoupling of the IDE to the compiler, it is quite possible to make good tooling that is independent of any particular editor. It's just that the language's popularity is what induces contributors (as most are realistically after "fame" and "portfilio" when doing contributions).
- jose_zap 1y agoThat was definitely true many years ago. Nowadays Haskell has some really good tooling. It has a feature-rich LSP, code formatter, package manager, dead-code checker, configurable linter, thread debugger, memory debugger, vulnerabilities checker, and much more. That’s just what is provided by external tooling. Then, it also has everything the compiler has to offer, which is bit more than what most languages do. For example, you can now compile to JavaScript or WASM.
- yakshaving_jgt 1y ago> all the tooling around Haskell is just really bad. No it isn’t. This is a stupid meme that people just dogmatically perpetuate.
- UltraSane 1y agoNo, this was from first hand experience. I guess Visual Studio and PyCharm have spoiled me.
- yakshaving_jgt 1y agoI wasn’t expecting your gripe to be about text editors. What exactly do you think is missing in Haskell? You can write Haskell in VSCode.
- EngineeringStuf 1y agoI've worked on a variety of large UK government systems for the past ten years. This blog encapsulates the problem of writing government services/software, which often results in strange outcomes. Writing software for government is essentially the codification of centuries worth of Acts of Parliament. Now imagine building the HMPO passport system, and then some underlying Law/Act is changed or repealed etc. Now someone has to find and change everything that the Law/Act affected in all systems. Now consider that the government frequently outsources this work to expensive consultancies who are motivated to elongate contracts and extract maximum value from the client... And ideally become entrenched. All whilst building systems of varying quality and inflexibility so that the next time that a Law/Act is changed then this whole process repeats. There is no central decision making authority to wrangle this problem (there used to be Spend Controls), which is why Government services delivery is so expensive.
- pbhjpbhj 1y agoDo you have any insight as to why, seemingly, there is no contractual obligation on contractors to make a working system. They seem to make something approximating a working system, vastly overcharge -- like x1000 -- for output that appears to be 3 months of work by one junior programmer, but then get paid as if the system actually worked.
- dmd 1y agoBecause the people approving the contracts typically used to work for the consultants, and plan to work for them again in the future.
- dvdkon 1y agoThere's often no one to make them accountable. With a building, people know that having a supervisor that's not from the contracted company is valuable, but this hasn't caught on in software.
- undefeated 1y agoIt benefits no one to acknowledge that months were spent and the only outcome is millions of dollars wated. Sure, they could try to hold the contractor accountable, but that would put them at risk of being held accountable themselves by their own superiors for hiring that contractor in the first place. So they pretend everything works great, and pay accordingly
- tempodox 1y agoThis is so infuriating. Props to the author for sublimating it into a coding challenge.
- asimpletune 1y agoI think an Italian version of this game could be very interesting.
- jasonhemann 1y agoJust fantastic. Bravo.
- throwawayben 1y agoI played this a few years ago. Despite being born in the UK to a British father my character wasn't previously British due to parents being unmarried and being born after 1983 but before the 2006 rules update. I'm not totally sure when but I think some time in the 2010s the 2006 update became retroactive so my character was allowed to play. Didn't have to do too many side quests - the main one was retrieving father's birth certificate. My character also had to attend the endgame ceremony and swear allegiance to the queen, which seemed odd for someone born in the country and lived here all his life
- jameshh 1y agoAt least you got the bonus endscreen credits!
- pbhjpbhj 1y agoI too have enjoyed a game of *Passport Application* by proxy. One of the interesting rules the OP doesn't appear to mention is the 'mutable history' rule. Herein, the facts contained in a single document can alter over even short periods of time requiring that a document, already scanned into the Examiners system of fact recording, can be required to be returned for subsequent scans. Verifying documents have not altered in their facts is, some say, tacit acknowledgement by the Examiner breed that a multiverse exists. The communication channel between the "NPC" telephone agents and the Examiners appears to be somewhat akin to prayer, only vague inferences can truly be received. Aside, I suspect the OP maybe be a Mornington Crescent aficianado; a game seemingly similar in rule-topology to the aforementioned Passport Application.
- tanh 1y agoYes and in the British system names can be fluid, changed at will with no declarations being made. That’s how my mother was able to register my birth with the surname of her mother’s third (!) marriage. Birth certificates are also immutable in certain ways but not entirely everything on it is immutable. Not to mention the passport office has forgotten previous decisions for my own passport where this sort of surname discrepancy has been explained away. (Including one passport where I am listed on a page of her passport!) The NPCs are infuriating. I called, emailed and received a different answer every time. It was like a poor LLM. After applying I had to explain to my mother that within the same batch of applications, one daughter required additional UK documents but the other one didn’t (the passport came), purely because one was born in the UK and the other one wasn’t. She rightly flipped out, raised it with an MP and it was resolved within a day.
- pbhjpbhj 1y agoSimilarly for us, siblings each required different treatment. Even when part of the same application. All born in the same UK hospital to the same parents and having the same home address. Fun. It was interesting to speculate what exactly the one child whose passport came months later had done that warranted the Examiner's extra scrutiny. Something to do with reincarnation I expect.
- mgaunard 1y agoUK is easy mode. Try France, or maybe Germany.
- ForHackernews 1y agoThis is one of many reasons why America's birthright citizenship is an incredible optimization: most people can prove they are American with a single document, a birth certificate.
- pyuser583 1y agoBack in the 2000s, the Justice Department prosecuted someone for a terrorist offense. They researched their birth and found out their parents were technically diplomats of a foreign country. It was a weird case, because the parents hadn’t actually been working for the foreign embassy for a while, and didn’t know they still held diplomatic status when their daughter was born. They had entered the US as diplomats and shortly after decided to go local. That was probably their plan all along - lots of diplomats from third world countries do that. It was a huge shock. Kind of a “surprise, you’re not actually a citizen, even though both your parents and all your siblings are!” She was deported.
- goldfishgold 1y agoProbably you’re referring to those woman https://en.m.wikipedia.org/wiki/Hoda_Muthana https://en.m.wikipedia.org/wiki/Hoda_Muthana
- pyuser583 1y agoMaybe? I remember both parents being diplomats.
- b0a04gl 1y ago[dead]
- cherryteastain 1y ago> What are the base cases? A base case is an ancestor whose Britishness does not depend on a parent, e.g. someone who was naturalised, or born in the UK before 1983 (which makes one unconditionally british regardless of parents). That's right, further into the future we get from 1983, the taller these call-stacks can get. This is insane to me, coming from a country that simply has a central database of all citizens and foreign residents, and a citizenship check is probably something like a single SELECT on an SQL table.
- maest 1y ago> citizenship check is probably something like a single SELECT on an SQL table I am willing to bet, with extremely unfavorable odds to me, that is not true
- exidy 1y agoSingPass[0] says hi. [0] https://www.singpass.gov.sg/main/ https://www.singpass.gov.sg/main/
- pyuser583 1y agoMany countries simply have no way of knowing who their citizens are. People born abroad are often citizens. The British have had an insane number of changes in territory that affect citizenship. Some of their current citizens have citizenship because they were born in Bombay (Mumbai). Others because they were born in Hong Kong. Maintaining a reliable list of citizens requires regular registration, and loosing citizenship if you don’t register.
- vishnugupta 1y agoThis reminds me of an article read about how DSL was used to automate/encode Dutch tax code. I can’t recall the article I read but this is a good presentation. https://tomassetti.me/wp-content/uploads/2020/10/2018-04-10-1700-Presentation-Jetbrains.pdf https://tomassetti.me/wp-content/uploads/2020/10/2018-04-10-...
- dbuxton 1y agoI had to do a MN1 application for my US-born daughter as both me and my partner were born abroad. As OP alludes to this is a sort of side quest called "registration" which if you don't do it before the child is 18 lapses (although I think there are still routes to obtain citizenship in these circs). The most difficult part of the process (not dealt with in this version of Passport Application but maybe a future DLC pack?) was actually finding someone who could certify my evidence (you are meant to submit originals but they keep the docs including passports for 3-6 months which is a bit unrealistic if you are living abroad). I can't remember the exact rules but it wasn't possible to use a US notary or a normal solicitor certification process and instead I needed to go to a council office. After calling about 5 councils all of whom disavowed any knowledge of the process or its requirements I ended up finding someone at Islington Council who was delightfully helpful. But it was one of the more frustrating UK government interactions I've had.
- triangle-man 1y agoTrying to track down some other reference, I see that there was work on formalising British nationality -- in Prolog! -- in 1986: https://www.doc.ic.ac.uk/~rak/papers/British%20Nationality%20Act.pdf https://www.doc.ic.ac.uk/~rak/papers/British%20Nationality%2...