My bad, this is a duplicate of Unable to refute impossible GADT pattern when phantom types belong to a module