GNUdap is a project to build a userspace driver to interface Linux with proprietary-protocol USB MP3 players and mass storage devices. Currently, GNUdap supports only the "Perstel,Inc. CHIC MP10". GNUdap is also an experiment to test the advantages of a strongly-typed programming language and of the functional programming paradigm in hardware development. GNUdap currently supports all features supported by the official program provided with the Chic, and has some additional features, like being able to transfer MP3s directly to the PC.