I'm trying to reduce this program, any tips?
```
print . sum $ accumArray
max
1
(2, lim)
[ (p * q, max (p * (x + k * q)) (q * (y + k' * p)))
| p <- [2 .. floor . sqrt $ fromIntegral lim]
, q <- [p + 1 .. lim `div` p]
, let (gcd, x, y) = extGCD p q
, gcd == 1
, let k = 1 + div (-x) q
, let k' = 1 + div (-y) p
]
```