@@ -16,20 +16,17 @@ import Text.HTML.Tree
1616
1717
1818arbitraryTokenForest :: Gen (Forest Token)
19−arbitraryTokenForest = listOf $ oneof
19+arbitraryTokenForest = listOf arbitraryTokenTree
20+
21+arbitraryTokenTree :: Gen (Tree Token)
22+arbitraryTokenTree = oneof
2023 [ Node <$> validOpen <*> scale (`div` 5) arbitraryTokenForest
2124 , Node <$> validFlat <*> pure []
2225 ]
2326
24−shrinkTokenForest :: Forest Token -> [Forest Token]
25−shrinkTokenForest = fmap shrinkTokenTree
26−
27−shrinkTokenTree :: Tree Token -> [Tree Token]
28−shrinkTokenTree (Node n c) = Node <$> shrink n <*> shrink c
29−
3027
3128spec :: Spec
3229spec = do
3330 it "parseTokenForests and renderTokenForest are inverses"
34− . property . forAllShrink arbitraryTokenForest shrinkTokenForest $
31+ . property . forAllShrink arbitraryTokenForest shrink $
3532 \forest -> tokensToForest (tokensFromForest forest) `shouldBe` Right forest