Breaks the loop caused by PprAbsC needing to see big swathes of ClosureInfo. Also from CLabel needing a couple of CgRetConv things. Also from HeapOffs needing some MachMisc things. \begin{code} interface AbsCLoop where import PreludeStdIO ( Maybe ) import CgRetConv ( ctrlReturnConvAlg, CtrlReturnConvention(..) ) import ClosureInfo ( closureKind, closureLabelFromCI, closureNonHdrSize, closurePtrsSize, closureSMRep, closureSemiTag, closureSizeWithoutFixedHdr, closureTypeDescr, closureUpdReqd, infoTableLabelFromCI, maybeSelectorInfo, entryLabelFromCI,fastLabelFromCI, ClosureInfo ) import CLabel ( CLabel ) import HeapOffs ( HeapOffset ) import Id ( Id(..) ) import MachMisc ( fixedHdrSizeInWords, varHdrSizeInWords ) import SMRep ( SMRep ) import TyCon ( TyCon ) closureKind :: ClosureInfo -> [Char] closureLabelFromCI :: ClosureInfo -> CLabel closureNonHdrSize :: ClosureInfo -> Int closurePtrsSize :: ClosureInfo -> Int closureSMRep :: ClosureInfo -> SMRep closureSemiTag :: ClosureInfo -> Int closureSizeWithoutFixedHdr :: ClosureInfo -> HeapOffset closureTypeDescr :: ClosureInfo -> [Char] closureUpdReqd :: ClosureInfo -> Bool entryLabelFromCI :: ClosureInfo -> CLabel fastLabelFromCI :: ClosureInfo -> CLabel infoTableLabelFromCI :: ClosureInfo -> CLabel maybeSelectorInfo :: ClosureInfo -> Maybe (Id, Int) ctrlReturnConvAlg :: TyCon -> CtrlReturnConvention data CtrlReturnConvention = VectoredReturn Int | UnvectoredReturn Int fixedHdrSizeInWords :: Int varHdrSizeInWords :: SMRep -> Int \end{code}