The document discusses a generic programming toolkit called PADS/ML that can be used to parse, analyze, and transform semi-structured or "ad hoc" data from various domains. It describes how PADS/ML uses generated type representations and typecase analysis to write functions that can operate on any data format described by a PADS/ML type. Case studies of PADX and Harmony are presented, which use PADS/ML to build tools for querying and synchronizing different data formats.