diff --git a/AvlTree.cabal b/AvlTree.cabal
--- a/AvlTree.cabal
+++ b/AvlTree.cabal
@@ -1,5 +1,5 @@
 Name:               AvlTree
-Version:            4.0
+Version:            4.1
 Cabal-Version:      >= 1.2
 Build-Type:         Simple
 License:            BSD3
diff --git a/CHANGELOG b/CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -35,3 +35,6 @@
    genVennMaybeAsList
 * Added UBT6 cpp macro to ghcdefs/h98defs
 
+4.1
+---
+* Added missing strictness to genVenn,genVennMaybe
diff --git a/Data/Tree/AVL/Set.hs b/Data/Tree/AVL/Set.hs
--- a/Data/Tree/AVL/Set.hs
+++ b/Data/Tree/AVL/Set.hs
@@ -546,7 +546,8 @@
  gu t0@(P _  _ r0) t1@(Z l1 _ _ ) = gu_ t0 (addHeight L(2) r0) t1 (addHeight L(1) l1)
  gu t0@(P _  _ r0) t1@(P _  _ r1) = gu_ t0 (addHeight L(2) r0) t1 (addHeight L(2) r1)
  gu_ t0 h0 t1 h1 = case vennH c [] L(0) t0 h0 t1 h1 of
-                   UBT6(tab,_,cs,cl,tba,_) -> (tab,asTreeLenL ASINT(cl) cs,tba)
+                   UBT6(tab,_,cs,cl,tba,_) -> let tc = asTreeLenL ASINT(cl) cs
+                                              in tc `seq` (tab,tc,tba)
 
 -- | Similar to 'genVenn', but intersection elements for which the combining comparison
 -- returns @('Eq' 'Nothing')@ are deleted from the intersection result.
@@ -566,7 +567,8 @@
  gu t0@(P _  _ r0) t1@(Z l1 _ _ ) = gu_ t0 (addHeight L(2) r0) t1 (addHeight L(1) l1)
  gu t0@(P _  _ r0) t1@(P _  _ r1) = gu_ t0 (addHeight L(2) r0) t1 (addHeight L(2) r1)
  gu_ t0 h0 t1 h1 = case vennMaybeH c [] L(0) t0 h0 t1 h1 of
-                   UBT6(tab,_,cs,cl,tba,_) -> (tab,asTreeLenL ASINT(cl) cs,tba)
+                   UBT6(tab,_,cs,cl,tba,_) -> let tc = asTreeLenL ASINT(cl) cs
+                                              in tc `seq` (tab,tc,tba)
 
 -- | Same as 'genVenn', but prepends the intersection component to the supplied list
 -- in ascending order.
