After Conor’s report from the Scottish Programming Language Workshop, I was talking about my new hobby of collecting isomorphisms on regular types (0,1,+,x,List) and claimed that
would be such a beast. Conor discovered that this was wrong and the corrected iso is
which is indeed an instance of the other beast in my rather modest collection :
Graham asked about the connection to numbers and Conor was happy to oblige by noting that arithmetically
and checking that the general iso is justified by this interpretation.
Since I got bored this afternoon, waiting for a phone call, I hacked in the first iso into Haskell (can I use lhs here? [you can now - Ed])