avoid circular includes problems between generic and fusion