diff --git a/pass/Traversal.hs b/pass/Traversal.hs index 7df2828..e94833e 100644 --- a/pass/Traversal.hs +++ b/pass/Traversal.hs @@ -22,7 +22,7 @@ module Traversal ( , transformToExplicitDepth, checkToTransform , baseX, extX, extD, extC, applyX , applyDepthM, applyDepthM2 - , checkDepthM + , checkDepthM, checkDepthM2 ) where import Data.Generics @@ -107,3 +107,9 @@ checkDepthM :: forall t1 s. (Data t1, Data s) => checkDepthM f1 = applyX $ baseX `extC` f1 +-- | Apply two checks, recursing depth-first. +checkDepthM2 :: forall t1 t2 s. (Data t1, Data t2, Data s) => + Check t1 -> Check t2 -> s -> PassM s +checkDepthM2 f1 f2 + = applyX $ baseX `extC` f1 `extC` f2 +