I'm afraid I'm pretty inexperienced with Haskell (like, I don't know how to get cabal set up to get all these dependencies), so I wasn't able to confirm that these changes actually work, but hopefully they're not too far off the mark.
issues with Militia / Bureaucrat / Moat: Yeah, I need to fix these.
cards from other expansions: I think this model should be flexible enough to handle most cards, although there will be some compromises. I think I'll need to store extra information somewhere too, but I'll cross that bridge when I come to it.
I'm afraid I'm pretty inexperienced with Haskell (like, I don't know how to get cabal set up to get all these dependencies), so I wasn't able to confirm that these changes actually work, but hopefully they're not too far off the mark.