    -- Copyright (c) 2021-2023, Shayne Fletcher. All rights reserved.
    -- SPDX-License-Identifier: BSD-3-Clause.
    {-# LANGUAGE LambdaCase #-}
    #include "ghclib_api.h"
    module Language.Haskell.GhclibParserEx.GHC.Hs.Type
      ( fromTyParen,
        isTyQuasiQuote,
        isUnboxedTuple,
        isKindTyApp,
      )
    where

    #if defined (GHC_8_8)
    import HsSyn
    #else
    import GHC.Hs
    #endif
    #if defined (GHC_8_8) || defined (GHC_8_10)
    import SrcLoc
    #else
    import GHC.Types.SrcLoc
    #endif

    isKindTyApp :: LHsType GhcPs -> Bool
    isKindTyApp :: LHsType GhcPs -> Bool
    isKindTyApp = \case (L SrcSpanAnnA
    _ HsAppKindTy {}) -> Bool
    True; LHsType GhcPs
    _ -> Bool
    False

    fromTyParen :: LHsType GhcPs -> LHsType GhcPs
    fromTyParen :: LHsType GhcPs -> LHsType GhcPs
    fromTyParen (L SrcSpanAnnA
    _ (HsParTy XParTy GhcPs
    _ LHsType GhcPs
    x)) = LHsType GhcPs
    x
    fromTyParen LHsType GhcPs
    x = LHsType GhcPs
    x

    isTyQuasiQuote :: LHsType GhcPs -> Bool
    isTyQuasiQuote :: LHsType GhcPs -> Bool
    isTyQuasiQuote (L SrcSpanAnnA
    _ (HsSpliceTy XSpliceTy GhcPs
    _ HsQuasiQuote {})) = Bool
    True
    isTyQuasiQuote LHsType GhcPs
    _ = Bool
    False

    isUnboxedTuple :: HsTupleSort -> Bool
    isUnboxedTuple :: HsTupleSort -> Bool
    isUnboxedTuple HsTupleSort
    HsUnboxedTuple = Bool
    True
    isUnboxedTuple HsTupleSort
    _ = Bool
    False