
I think there's a bug in unique naming for instances of (originally) derived classes. Putting this in one file: data Result = Result { resultModule :: TagString, resultName :: TagString, resultType :: TagString, resultInfo :: [Reason], resultScore :: Score } deriving Show and this in another: data ClassTable = ClassTable (Map.Map String [TypeMatch]) deriving Show generates code that has the function a25v28v25v31showsPrec in both modules, and thus causes this error: Hat/MatchClass.hs:30:12: Ambiguous occurrence `a25v28v25v31showsPrec' It could refer to either `Hat.MatchClass.a25v28v25v31showsPrec', defined at Hat/MatchClass.hs:368:0 or `Hat.Result.a25v28v25v31showsPrec', imported from Hat.Result at Hat/MatchClass.hs:11:0-16 Bob

Thomas Davie
data Result = Result { ... } deriving Show
data ClassTable = ClassTable (Map.Map String [TypeMatch]) deriving Show
generates code that has the function a25v28v25v31showsPrec in both modules, and thus causes this error:
As a workaround, try inserting or deleting an extra blank line (or spaces) in one of the files.
Hat/MatchClass.hs:30:12: Ambiguous occurrence `a25v28v25v31showsPrec' It could refer to either `Hat.MatchClass.a25v28v25v31showsPrec', or `Hat.Result.a25v28v25v31showsPrec',
The identifier a25v28v25v31 comes from the position of the deriving Show clause, (line 25, char 28) upto (line 25, char 31). Regards, Malcolm
participants (2)
-
Malcolm Wallace
-
Thomas Davie