Ugh, I figured out how to write code to do what I wanted, but it seems like an ugly solution: getPtrSize :: Ptr a -> Int getPtrSize = getFrom dummy where getFrom :: a -> Ptr a -> Int getFrom dummy _ = sizeOf dummy Any thoughts on a less ugly solution, or is this really the best that I can do? Cheers, Greg