    TestTree (insert (7 :: Int) (fromList [1 .. 6])) `shouldBe` TestTree (fromList [1 .. 7])
    invariantBinatyTree (insert (8 :: Int) (fromList [1 .. 7])) `shouldBe` True
    TestTree (insert (8 :: Int) (fromList [1 .. 7])) `shouldBe` TestTree (fromList [1 .. 8])
    invariantBinatyTree (insert (9 :: Int) (fromList [1 .. 8])) `shouldBe` True
    TestTree (insert (9 :: Int) (fromList [1 .. 8])) `shouldBe` TestTree (fromList [1 .. 9])
    invariantBinatyTree (insert (1 :: Int) Leaf) `shouldBe` True
    TestTree (insert (1 :: Int) Leaf) `shouldBe` TestTree (Node Leaf (1 NL.:| []) Leaf)
    invariantBinatyTree (insert (1 :: Int) example2) `shouldBe` True
    TestTree (insert (1 :: Int) example2) `shouldBe` TestTree example1 where
        example1 = Node Leaf (1 NL.:| [1, 1, 1]) Leaf
        example2 = Node Leaf (1 NL.:| [1, 1]) Leaf

testFromList :: SpecWith ()