Added TypeFamilies extension for Linux and rewrote watchDirChan with more explicit types