Let me restate: gfindtype's declaration should be > gfindtype :: (Data x, Typeable y) => x -> Maybe y Jim