{-# LANGUAGE OverloadedStrings #-}

module BNFC.Backend.Haskell.GADT.Utils where

import BNFC.Prelude

import BNFC.Backend.Haskell.Utilities.Utils
import BNFC.CF


isTreeType :: (Label, ARHS) -> Bool
isTreeType :: (Label, ARHS) -> Bool
isTreeType (Label
_,ARHS
arhs) = Bool -> Bool
not ([Doc ()] -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null ([Doc ()] -> Bool) -> [Doc ()] -> Bool
forall a b. (a -> b) -> a -> b
$ ARHS -> [Doc ()]
printArgs ARHS
arhs)
  Bool -> Bool -> Bool
&& Bool -> Bool
not ((Item' String1 -> Bool) -> ARHS -> Bool
forall (t :: * -> *) a. Foldable t => (a -> Bool) -> t a -> Bool
all Item' String1 -> Bool
forall a. Item' a -> Bool
isItemBuiltin ((Item' String1 -> Bool) -> ARHS -> ARHS
forall a. (a -> Bool) -> [a] -> [a]
filter Item' String1 -> Bool
forall a. Item' a -> Bool
isNTerminal ARHS
arhs))