------------------------------------------------------------------------------- {- LANGUAGE CPP #-} ------------------------------------------------------------------------------- -- | -- Module : Control.DeepSeq.Bounded.PatUtil -- Copyright : Andrew G. Seniuk 2014-2015 -- License : BSD-style (see the file LICENSE) -- -- Maintainer : Andrew Seniuk -- Stability : provisional -- Portability : portable -- ------------------------------------------------------------------------------- module Control.DeepSeq.Bounded.PatUtil ( #if NEW_IMPROVED_PATTERN_GRAMMAR -- * Basic operations on Patterns unionPats , intersectPats , subPat -- , unionPatsStr #if ! HASKELL98_FRAGMENT -- * Operations for obtaining and modifying Patterns based on a term , mkPat , mkPatN , growPat #endif -- * Operations for obtaining subpatterns (in the 'subPat' sense) , truncatePat , shrinkPat #if PROVIDE_OLD_SHRINK_PAT , shrinkPat_old #endif -- * Operations for the direct construction and perturbation of Patterns , emptyPat , liftPats , splicePats , elidePats , erodePat -- * Re-exported for convenience , module Control.DeepSeq.Bounded.Pattern -- * Debugging convenience #if ! HASKELL98_FRAGMENT , Shape , shapeOf , ghom #endif , probDensRose , weightedRose , unzipRose , showRose #else -- * Basic operations on Patterns unionPats , intersectPats , subPat -- , unionPatsStr #if ! HASKELL98_FRAGMENT -- * Operations for obtaining and modifying Patterns based on a term , mkPat , mkPatN , growPat #endif -- * Operations for obtaining subpatterns (in the 'subPat' sense) , truncatePat , shrinkPat #if PROVIDE_OLD_SHRINK_PAT , shrinkPat_old #endif -- * Operations for the direct construction and perturbation of Patterns , emptyPat , liftPats , splicePats , elidePats , erodePat -- * Re-exported for convenience , module Control.DeepSeq.Bounded.Pattern #endif --- #if NEW_IMPROVED_PATTERN_GRAMMAR --- module Control.DeepSeq.Bounded.PatUtil_new_grammar , --- #else --- module Control.DeepSeq.Bounded.PatUtil_old_grammar , --- #endif ) where ------------------------------------------------------------------------------- #if NEW_IMPROVED_PATTERN_GRAMMAR import Control.DeepSeq.Bounded.PatUtil_new_grammar #else import Control.DeepSeq.Bounded.PatUtil_old_grammar #endif -- Necessity seems like a Haddock bug, as it is both imported -- and exported by PatUtil_{old,new}_*.hs. import Control.DeepSeq.Bounded.Pattern -------------------------------------------------------------------------------