convertLHsSigTypeWithExcls utvm (HsIB hs_itvs hs_lty) excls = do
#elif __GLASGOW_HASKELL__ == 806
convertLHsSigTypeWithExcls utvm (HsIB (HsIBRn {hsib_vars=hs_itvs}) hs_lty) excls = do
#else
convertLHsSigTypeWithExcls utvm (HsIB hs_itvs hs_lty _) excls = do
#endif
  coq_itvs <- traverse (var TypeNS) hs_itvs
  coq_ty   <- convertLType hs_lty

  finishConvertHsSigTypeWithExcls utvm coq_itvs coq_ty excls
#if __GLASGOW_HASKELL__ >= 806
convertLHsSigTypeWithExcls utvm (HsIB hs_itvs hs_lty) excls = do
#elif __GLASGOW_HASKELL__ == 806
convertLHsSigTypeWithExcls utvm (HsIB (HsIBRn {hsib_vars=hs_itvs}) hs_lty) excls = do
#else
convertLHsSigTypeWithExcls utvm (HsIB hs_itvs hs_lty _) excls = do
#endif
  coq_itvs <- traverse (var TypeNS) hs_itvs
  coq_ty   <- convertLType hs_lty

  finishConvertHsSigTypeWithExcls utvm coq_itvs coq_ty excls
#if __GLASGOW_HASKELL__ >= 806
convertLHsSigTypeWithExcls utvm (HsIB hs_itvs hs_lty) excls = do
#elif __GLASGOW_HASKELL__ == 806
convertLHsSigTypeWithExcls utvm (HsIB (HsIBRn {hsib_vars=hs_itvs}) hs_lty) excls = do
#else
convertLHsSigTypeWithExcls utvm (HsIB hs_itvs hs_lty _) excls = do
#endif
  coq_itvs <- traverse (var TypeNS) hs_itvs
  coq_ty   <- convertLType hs_lty

  finishConvertHsSigTypeWithExcls utvm coq_itvs coq_ty excls
#if __GLASGOW_HASKELL__ >= 806