Yup, looks good (I didn't understand the gap stuff, but apparently that's
not a big deal).
Three silly style details I think we could follow up on (that I'm feeling
a little less shy now we're cleaning up)
1. Before
foo <- long long thing x
bar <- long long thing y
After
[foo, bar] <- mapM (long long thing) [x,y]
Better yet?
let shorter = long long thing
foo <- shorter x
bar <- shorter y
2. Keep scope small (the less knowledge the better)
Before: do
blah blah
let x = does not actually depend on blah blah
other blah
After: do
blah blah blah
other blah
where
x = does not actually depend on blah blah (less chance of
error/misunderstanding?)
3. Possible chance to use the case () of _ | pattern as a better refactor
for the nested if
|