Split GHC-agnostic and GHC-specific parts into seperate packages