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!


On Mon, Jan 5, 2015 at 2:22 PM, Jeffrey Brown <jeffbrown.the@gmail.com> wrote:
Thanks guys!

I found the library, though, as a .tar.gz file under /home/jeff/.cabal/packages/hackage.haskell.org/grapefruit-ui/0.1.0.5, and when I uncompressed that, found the UIItem file.

I can't find the offending character in it, though. Supposedly it was at position 12.2 (line 12, column 2, right?), but I only see whitespace there. The first few lines of it are these ("module" being the first word of the first line):

module Internal.UIItem (

    -- * User interface items in general
    UIItem (UIItem),
    item,

    -- * Bricks
    Brick,
    brick,
    just,

    -- * Boxes
    Box,
    box,
    with,
    With (With),

On Mon, Jan 5, 2015 at 2:00 PM, Brandon Allbery <allbery.b@gmail.com> wrote:
On Mon, Jan 5, 2015 at 4:56 PM, Jeffrey Brown <jeffbrown.the@gmail.com> wrote:
I wanted to find the offending 'i' character, but the file "src/Internal/UIItem.hs-boot" I was unable to find anywhere:

It won't be there, it was removed during cleanup from the failed install. Use "cabal get grapefruit-ui" to get a more permanent copy of the source.

-- 
brandon s allbery kf8nh                               sine nomine associates
allbery.b@gmail.com                                  ballbery@sinenomine.net
unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net