[1 of 3] Processing p [1 of 2] Compiling H[sig] ( p/H.hsig, nothing ) [2 of 2] Compiling M ( p/M.hs, nothing ) [2 of 3] Processing q Instantiating q [1 of 1] Compiling H ( q/H.hs, bkpfail27.out/q/H.o ) [3 of 3] Processing r Instantiating r [1 of 1] Including p[H=q:H] Instantiating p[H=q:H] [1 of 2] Compiling H[sig] ( p/H.hsig, bkpfail27.out/p/p-D5Mg3foBSCrDbQDKH4WGSG/H.o ) bkpfail27.bkp:15:9: error: • Type constructor ‘T’ has conflicting definitions in the module and its hsig file Main module: type T :: * type T = F Hsig file: type T :: * data T Illegal type family application in implementation of abstract data. • while checking that q:H implements signature H in p[H=q:H]