I remembered a bit wrong, the final version was 155 lines (I think my first stab was ~80 lines).
I have a version of it on Github as a gist https://gist.github.com/jasonmhite/c4c56d4c50fc673e658b71b82... . Can't really claim whether or not it's "good" Haskell or that it's optimal, but it gets the job done. I also dunno how comprehensible it is without knowing the ins-and-outs of the nPOD format or multiplicity counting, but hey there it is.
Not sure of what the definitive reference is, but this article is pretty good I think:
I have a version of it on Github as a gist https://gist.github.com/jasonmhite/c4c56d4c50fc673e658b71b82... . Can't really claim whether or not it's "good" Haskell or that it's optimal, but it gets the job done. I also dunno how comprehensible it is without knowing the ins-and-outs of the nPOD format or multiplicity counting, but hey there it is.
Not sure of what the definitive reference is, but this article is pretty good I think:
https://www.schoolofhaskell.com/school/starting-with-haskell...