[1 of 2] Processing p [1 of 1] Compiling ShouldFail[sig] ( p/ShouldFail.hsig, nothing ) [2 of 2] Processing q Instantiating q [1 of 1] Including p[ShouldFail=base-4.16.0.0:Prelude] Instantiating p[ShouldFail=base-4.16.0.0:Prelude] [1 of 1] Compiling ShouldFail[sig] ( p/ShouldFail.hsig, bkpfail17.out/p/p-2W6J7O3LvroH97zGxbPEGF/ShouldFail.o ) : error: • Type constructor ‘Either’ has conflicting definitions in the module and its hsig file Main module: type Either :: * -> * -> * data Either a b = Left a | Right b Hsig file: type role Either representational phantom phantom type Either :: * -> * -> * -> * data Either a b c = Left a The types have different kinds • while checking that Prelude implements signature ShouldFail in p[ShouldFail=Prelude]