I did not realize UIItem.hs and UIItem.hs-boot were separate things; I thank Matthew Pickering for pointing out that potential error in a private message.
It looks like Alan or Kim was right: the 12th line of the boot file reads "#if MIN_VERSION_base(4,7,0)", and the file contains no mention of CPP. I am left with two questions:
How to enable CPP?
------------------
Do I just include the following liine at the top of the boot file?
{-# LANGUAGE CPP #-}
How to replace the boot file?
-----------------------------
In my
hackage.haskell.org folder there are a lot of subfolders named after Haskell libraries -- arrows, cairo, etc. Almost every one of those includes in turn a single folder with a version number, and within that a .tar.gz file. In order to find the error you all helped me locate, I uncompressed the .tar.gz file in the grapefruit-ui folder. I could alter that object, but that does not seem likely to help, because I would not be altering the data that Haskell actually uses.
Thanks! This is exciting!