diff --git a/Data/Generics/Geniplate.hs b/Data/Generics/Geniplate.hs
--- a/Data/Generics/Geniplate.hs
+++ b/Data/Generics/Geniplate.hs
@@ -220,9 +220,15 @@
         return True
      else do
         c <- gets snd
-        case mLookup from c of
+        case mLookupSplits from c of
             Just b  -> return b
             Nothing -> contains' to from
+
+mLookupSplits :: Type -> Map Type a -> Maybe a
+mLookupSplits ty m = msum [ mLookup ty' m | ty' <- splits ty ]
+  where
+    splits t@(AppT u _) = t:splits u
+    splits t = [t]
 
 -- Check if the second type is contained somewhere inside the first.
 contains' :: Type -> Type -> U Bool
diff --git a/geniplate-mirror.cabal b/geniplate-mirror.cabal
--- a/geniplate-mirror.cabal
+++ b/geniplate-mirror.cabal
@@ -1,11 +1,12 @@
 Name:           geniplate-mirror
-Version:        0.6.0.6
+Version:        0.6.0.7
 Synopsis:       Use Template Haskell to generate Uniplate-like functions.
 Description:    Use Template Haskell to generate Uniplate-like functions.
                 .
                 This is a maintained mirror of the
                 <http://hackage.haskell.org/package/geniplate geniplate> package,
                 written by Lennart Augustsson.
+Homepage:       https://github.com/danr/geniplate
 Bug-reports:    https://github.com/danr/geniplate/issues
 License:        BSD3
 License-File:   LICENSE
