module Language.Haskell.Exts.Util.Internal where
import Control.Monad
import Data.Data hiding (Fixity)
import Data.Default
import Data.Functor
import Data.Generics.Uniplate.Data
import Data.List
import Data.Maybe
import Language.Haskell.Exts
import Prelude
isApp App{} = True; isApp _ = False
isAnyApp x = isApp x || isInfixApp x
isInfixApp InfixApp{} = True; isInfixApp _ = False
isDot :: QOp s -> Bool
isDot (QVarOp _ (UnQual _ (Symbol _ "."))) = True
isDot _ = False
isSection LeftSection{} = True
isSection RightSection{} = True
isSection _ = False
isDotApp :: Exp s -> Bool
isDotApp (InfixApp _ _ dot _) | isDot dot = True
isDotApp _ = False
isLexeme Var{} = True
isLexeme Con{} = True
isLexeme Lit{} = True
isLexeme _ = False