First of all, let's try to fix SrcLoc.

Lots of fixes for prettier sexps later: A pull request. Troels is continuing to improve my work, and I'm waiting for sexp-grammar to release a new version, and nixpkgs to merge haskell-updates. In the meantime, I should move on with my interference. Actually, interference is mostly done for now, although it could do with some nicer tests, now that the sexp stuff is in place. Let's wait a bit, and instead try to move on to the actual reuse of allocations.

Ah, stop! Some programs are not encoded/decoded correctly!

To find benchmarks that don't transcode correctly, run the following command inside futhark-benchmarks.

1: find . -name '*.fut' -fprint /dev/stderr -exec cabal exec futhark -- dev --kernels -a --sexp '{}' \; > /dev/null

Turns out InterestCalib does not produce isomorph sexps.

The problem is that it has more than one VName that looks like this: 0_12144. Because we try to parse the 0 as a symbol, it doesn't work.

Let's fix that tomorrow.