Googling "left but not entered" suggests that messages like this indicate a misconfigured gcc
. Here is the code in Apple's version which generates the message:
void
linemap_check_files_exited (struct line_maps *set)
{
struct line_map *map;
/* Depending upon whether we are handling preprocessed input or
not, this can be a user error or an ICE. */
for (map = &set->maps[set->used - 1]; ! MAIN_FILE_P (map);
map = INCLUDED_FROM (set, map))
fprintf (stderr, "line-map.c: file \"%s\" entered but not left\n",
map->to_file);
}
(from http://www.opensource.apple.com/source/gcc/gcc-5484/libcpp/line-map.c )
Here "ICE" refers to "internal compiler error".
The #LINE directives are inserted so that ghc can report errors based on the locations in the .x or .y files. It says that the following line is really a certain line from another file. The #LINE directives for the pseudo file names <command-line>
and <built-in>
can be ignored because they are always immediately followed by a #LINE directive for a real file name, e.g.:
...
{-# LINE 1 "<built-in>" #-}
{-# LINE 1 "<command-line>" #-}
{-# LINE 1 "templates/wrappers.hs" #-}
...
{-# LINE 1 "<built-in>" #-}
{-# LINE 1 "<command-line>" #-}
{-# LINE 1 "templates/GenericTemplate.hs" #-}
...
As a test you can simply remove the #LINE directives for <command-line>
and see if the warnings go away. I would also try re-installing/upgrading your gcc and/or your Haskell Platform.