>(i.e. DataD with all the stuff that doesn't occur removed)? Yes, this sounds good to me... effectively we just want the left hand side of the 'data' statement defining them. As they are primitves the right hand side is unknowable (ie they behave as abstract types) Keean.