Split IvoryType into IvoryType and IvoryArea

 * this should allow GeneralizedNewtypeDeriving to work with either