collapse_right :: right -> Right right final -> final
--collapse_right f (RightNull)     = f
collapse_right f (RightCons b r) = collapse_right (f b) r
collapse_right :: right -> Right right final -> final
collapse_right f (RightCons b r) = collapse_right (f b) r
collapse_right f (RightCons b r) = collapse_right (f b) r