hello again list is it possible to have mutually recursive classes and types? I'm trying to implement the zipper, and this is what I came up with: class type node_wrapper = object method identify : string method get_child_location : location end class virtual nodeable = object(self) method virtual to_node_wrapper : node_wrapper end type path = (nodeable list * location * nodeable list) option and location = Loc of nodeable * path which, of course, doesn't type check a simpler test case would be class a = val b : c end type c = a thanks for all the help so far! --Jacques