module Spec.HTree.Traverse (spec) where import Data.Functor.Const (Const (Const)) import Data.HTree.Tree (HTree, hctraverse) import Spec.HTree.Fixtures (ex, exShown, unI, type Ex) import Spec.HTree.Helpers (forgetHTree) import Test.Hspec (Spec, describe, it) spec :: Spec spec = do describe "use hctraverse" $ do it "yields the same result as expected" $ do let traversed :: Maybe (HTree (Const String) Ex) traversed = hctraverse @Show (Just . Const . show . unI) ex Just `traverse` exShown == (forgetHTree <$> traversed)