Added recursive types and roll/unroll.  Checking for roll/unroll not done.