GHC confused by hi-boot files

George Russell ger at informatik.uni-bremen.de
Fri Sep 17 05:30:59 EDT 2004


With both ghc6.2 and 6.2.20040915 on Linux, ghc --make cannot compile
the attached files and produces a confusing error message.

  # ghc --make View.hs
Chasing modules from: View.hs
Compiling ViewType         ( ./ViewType.hs, ./ViewType.o )
Compiling VersionGraphClient ( ./VersionGraphClient.hs, ./VersionGraphClient.o )Compiling View             ( View.hs, View.o )

View.hs:14:
     Couldn't match `VersionGraphClient' against `VersionGraphClient'
	Expected type: VersionGraphClient
	Inferred type: VersionGraphClient
     In the `graphClient1' field of a record
     In the record construction: View {graphClient1 = graphClient}

However ghc without make has no problems.

# ghc -c ViewType.hs
# ghc -c VersionGraphClient.hs
# ghc -c View.hs

best wishes to all Simons!



-------------- next part --------------
module VersionGraphClient where

data VersionGraphClient
-------------- next part --------------
module VersionGraphClient(
   VersionGraphClient,

   ) where

import ViewType

newtype VersionGraphClient = VersionGraphClient Int
-------------- next part --------------
-- | This module defines the fundamental structure of the (untyped) 
-- objects in a repository. 
-- 
-- We depend circularly on CodedValue.hs.  This module is compiled
-- first and uses CodedValue.hi-boot.
module View(
   ) where

import ViewType
import VersionGraphClient

createView :: VersionGraphClient -> IO View
createView graphClient =
   do
      return (View {
         graphClient1 = graphClient
         })
-------------- next part --------------
module ViewType(

   View(..),
   ) where


import {-# SOURCE #-} VersionGraphClient

data View = View {
   graphClient1 :: VersionGraphClient
   }


More information about the Glasgow-haskell-bugs mailing list