1. Why is this source file duplicated?
For the benefit of those who want to use greencard but don't want to use a source distribution of Hugs. A better solution to this (rather lame) argument would have been adding GreenCard.h to the binary distributions.
2. Are there any version compatibility issues to worry about here?
Hugs uses version numbers for the API that Greencard uses. Greencard currently uses version 2 whilst Hugs supports 2 and 3. There is a dynamic check that the version number is ok. I believe that the check reflects reality - i.e., that it really is ok to use greencard and the greencard-supplied API with a modern version of Hugs.
I'm a little perplexed as to why the latest release of hugs has a more up-to-date "GreenCard.h" than GreenCard itself.
Because GreenCard.h is really a definition of the FFI-support API and the FFI support has been updated much more recently than GreenCard. Perhaps the name of the file should be changed and copies included in binary distributions. -- Alastair Reid ps The CVS repository for Hugs is online so you could track down who is to blame for changes like this. (Me, in this case.)