File ‹zippy_node_base.ML›
signature ZIPPY_NODE_BASE =
sig
include ZIPPY_BASE_BASE
structure ZN : \<^eval>‹pfx_sfx_nargs "ALTERNATING_ZIPPER_NODES"›
sharing type ZN.M.t = M.t
structure SZN : \<^eval>‹pfx_sfx_nargs "SUB_ALTERNATING_ZIPPER"›
\<^imap>‹‹{i}› => ‹
where type @{AllT_args} ZSub.Z{i}.ZM.container = @{AllT_args} ZN.Z{i}.ZM.container
where type @{AllT_args} ZSub.Z{i}.zipper = @{AllT_args} ZN.Z{i}.zipper
where type @{AllT_args} ZSub.Z{i}.ZD.content = @{AllT_args} ZN.Z{i}.ZD.content
where type @{AllT_args} ZSub.Z{i}.ZD.zcontext = @{AllT_args} ZN.Z{i}.ZD.zcontext››
\<^imap>‹‹{i}› => ‹
sharing type SZN.SZ{i}.Container.container = Z{i}.ZM.container
sharing type SZN.SZ{i}.Zipper.container = Z{i}.zipper
sharing type SZN.SZ{i}.Content.container = Z{i}.ZD.content
sharing type SZN.SZ{i}.ZCtxt.container = Z{i}.ZD.zcontext››
sharing type SZN.ZSub.M.t = M.t
end