Traqula
    Preparing search index...
    mapOperation: <Safe extends Safeness = "safe", OutType = unknown>(
        startObject: object,
        nodeCallBacks: {
            add?: {
                preVisitor?: (orig: Algebra.Add) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Add>,
                    orig: Algebra.Add,
                ) => unknown;
            };
            alt?: {
                preVisitor?: (orig: Algebra.Alt) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Alt>,
                    orig: Algebra.Alt,
                ) => unknown;
            };
            ask?: {
                preVisitor?: (orig: Algebra.Ask) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Ask>,
                    orig: Algebra.Ask,
                ) => unknown;
            };
            bgp?: {
                preVisitor?: (orig: Algebra.Bgp) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Bgp>,
                    orig: Algebra.Bgp,
                ) => unknown;
            };
            clear?: {
                preVisitor?: (orig: Algebra.Clear) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Clear>,
                    orig: Algebra.Clear,
                ) => unknown;
            };
            compositeupdate?: {
                preVisitor?: (orig: Algebra.CompositeUpdate) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.CompositeUpdate>,
                    orig: Algebra.CompositeUpdate,
                ) => unknown;
            };
            construct?: {
                preVisitor?: (orig: Algebra.Construct) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Construct>,
                    orig: Algebra.Construct,
                ) => unknown;
            };
            copy?: {
                preVisitor?: (orig: Algebra.Copy) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Copy>,
                    orig: Algebra.Copy,
                ) => unknown;
            };
            create?: {
                preVisitor?: (orig: Algebra.Create) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Create>,
                    orig: Algebra.Create,
                ) => unknown;
            };
            deleteinsert?: {
                preVisitor?: (orig: Algebra.DeleteInsert) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.DeleteInsert>,
                    orig: Algebra.DeleteInsert,
                ) => unknown;
            };
            describe?: {
                preVisitor?: (orig: Algebra.Describe) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Describe>,
                    orig: Algebra.Describe,
                ) => unknown;
            };
            distinct?: {
                preVisitor?: (orig: Algebra.Distinct) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Distinct>,
                    orig: Algebra.Distinct,
                ) => unknown;
            };
            drop?: {
                preVisitor?: (orig: Algebra.Drop) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Drop>,
                    orig: Algebra.Drop,
                ) => unknown;
            };
            expression?: {
                preVisitor?: (orig: Algebra.Expression) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Expression>,
                    orig: Algebra.Expression,
                ) => unknown;
            };
            extend?: {
                preVisitor?: (orig: Algebra.Extend) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Extend>,
                    orig: Algebra.Extend,
                ) => unknown;
            };
            filter?: {
                preVisitor?: (orig: Algebra.Filter) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Filter>,
                    orig: Algebra.Filter,
                ) => unknown;
            };
            from?: {
                preVisitor?: (orig: Algebra.From) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.From>,
                    orig: Algebra.From,
                ) => unknown;
            };
            graph?: {
                preVisitor?: (orig: Algebra.Graph) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Graph>,
                    orig: Algebra.Graph,
                ) => unknown;
            };
            group?: {
                preVisitor?: (orig: Algebra.Group) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Group>,
                    orig: Algebra.Group,
                ) => unknown;
            };
            inv?: {
                preVisitor?: (orig: Algebra.Inv) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Inv>,
                    orig: Algebra.Inv,
                ) => unknown;
            };
            join?: {
                preVisitor?: (orig: Algebra.Join) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Join>,
                    orig: Algebra.Join,
                ) => unknown;
            };
            leftjoin?: {
                preVisitor?: (orig: Algebra.LeftJoin) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.LeftJoin>,
                    orig: Algebra.LeftJoin,
                ) => unknown;
            };
            link?: {
                preVisitor?: (orig: Algebra.Link) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Link>,
                    orig: Algebra.Link,
                ) => unknown;
            };
            load?: {
                preVisitor?: (orig: Algebra.Load) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Load>,
                    orig: Algebra.Load,
                ) => unknown;
            };
            minus?: {
                preVisitor?: (orig: Algebra.Minus) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Minus>,
                    orig: Algebra.Minus,
                ) => unknown;
            };
            move?: {
                preVisitor?: (orig: Algebra.Move) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Move>,
                    orig: Algebra.Move,
                ) => unknown;
            };
            nop?: {
                preVisitor?: (orig: Algebra.Nop) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Nop>,
                    orig: Algebra.Nop,
                ) => unknown;
            };
            nps?: {
                preVisitor?: (orig: Algebra.Nps) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Nps>,
                    orig: Algebra.Nps,
                ) => unknown;
            };
            OneOrMorePath?: {
                preVisitor?: (orig: Algebra.OneOrMorePath) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.OneOrMorePath>,
                    orig: Algebra.OneOrMorePath,
                ) => unknown;
            };
            orderby?: {
                preVisitor?: (orig: Algebra.OrderBy) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.OrderBy>,
                    orig: Algebra.OrderBy,
                ) => unknown;
            };
            path?: {
                preVisitor?: (orig: Algebra.Path) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Path>,
                    orig: Algebra.Path,
                ) => unknown;
            };
            pattern?: {
                preVisitor?: (orig: Algebra.Pattern) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Pattern>,
                    orig: Algebra.Pattern,
                ) => unknown;
            };
            project?: {
                preVisitor?: (orig: Algebra.Project) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Project>,
                    orig: Algebra.Project,
                ) => unknown;
            };
            reduced?: {
                preVisitor?: (orig: Algebra.Reduced) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Reduced>,
                    orig: Algebra.Reduced,
                ) => unknown;
            };
            seq?: {
                preVisitor?: (orig: Algebra.Seq) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Seq>,
                    orig: Algebra.Seq,
                ) => unknown;
            };
            service?: {
                preVisitor?: (orig: Algebra.Service) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Service>,
                    orig: Algebra.Service,
                ) => unknown;
            };
            slice?: {
                preVisitor?: (orig: Algebra.Slice) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Slice>,
                    orig: Algebra.Slice,
                ) => unknown;
            };
            union?: {
                preVisitor?: (orig: Algebra.Union) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Union>,
                    orig: Algebra.Union,
                ) => unknown;
            };
            values?: {
                preVisitor?: (orig: Algebra.Values) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Values>,
                    orig: Algebra.Values,
                ) => unknown;
            };
            ZeroOrMorePath?: {
                preVisitor?: (orig: Algebra.ZeroOrMorePath) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.ZeroOrMorePath>,
                    orig: Algebra.ZeroOrMorePath,
                ) => unknown;
            };
            ZeroOrOnePath?: {
                preVisitor?: (orig: Algebra.ZeroOrOnePath) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.ZeroOrOnePath>,
                    orig: Algebra.ZeroOrOnePath,
                ) => unknown;
            };
        },
    ) => Safe extends "unsafe" ? OutType : unknown = ...

    Type Declaration

      • <Safe extends Safeness = "safe", OutType = unknown>(
            startObject: object,
            nodeCallBacks: {
                add?: {
                    preVisitor?: (orig: Algebra.Add) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Add>,
                        orig: Algebra.Add,
                    ) => unknown;
                };
                alt?: {
                    preVisitor?: (orig: Algebra.Alt) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Alt>,
                        orig: Algebra.Alt,
                    ) => unknown;
                };
                ask?: {
                    preVisitor?: (orig: Algebra.Ask) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Ask>,
                        orig: Algebra.Ask,
                    ) => unknown;
                };
                bgp?: {
                    preVisitor?: (orig: Algebra.Bgp) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Bgp>,
                        orig: Algebra.Bgp,
                    ) => unknown;
                };
                clear?: {
                    preVisitor?: (orig: Algebra.Clear) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Clear>,
                        orig: Algebra.Clear,
                    ) => unknown;
                };
                compositeupdate?: {
                    preVisitor?: (orig: Algebra.CompositeUpdate) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.CompositeUpdate>,
                        orig: Algebra.CompositeUpdate,
                    ) => unknown;
                };
                construct?: {
                    preVisitor?: (orig: Algebra.Construct) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Construct>,
                        orig: Algebra.Construct,
                    ) => unknown;
                };
                copy?: {
                    preVisitor?: (orig: Algebra.Copy) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Copy>,
                        orig: Algebra.Copy,
                    ) => unknown;
                };
                create?: {
                    preVisitor?: (orig: Algebra.Create) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Create>,
                        orig: Algebra.Create,
                    ) => unknown;
                };
                deleteinsert?: {
                    preVisitor?: (orig: Algebra.DeleteInsert) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.DeleteInsert>,
                        orig: Algebra.DeleteInsert,
                    ) => unknown;
                };
                describe?: {
                    preVisitor?: (orig: Algebra.Describe) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Describe>,
                        orig: Algebra.Describe,
                    ) => unknown;
                };
                distinct?: {
                    preVisitor?: (orig: Algebra.Distinct) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Distinct>,
                        orig: Algebra.Distinct,
                    ) => unknown;
                };
                drop?: {
                    preVisitor?: (orig: Algebra.Drop) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Drop>,
                        orig: Algebra.Drop,
                    ) => unknown;
                };
                expression?: {
                    preVisitor?: (orig: Algebra.Expression) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Expression>,
                        orig: Algebra.Expression,
                    ) => unknown;
                };
                extend?: {
                    preVisitor?: (orig: Algebra.Extend) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Extend>,
                        orig: Algebra.Extend,
                    ) => unknown;
                };
                filter?: {
                    preVisitor?: (orig: Algebra.Filter) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Filter>,
                        orig: Algebra.Filter,
                    ) => unknown;
                };
                from?: {
                    preVisitor?: (orig: Algebra.From) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.From>,
                        orig: Algebra.From,
                    ) => unknown;
                };
                graph?: {
                    preVisitor?: (orig: Algebra.Graph) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Graph>,
                        orig: Algebra.Graph,
                    ) => unknown;
                };
                group?: {
                    preVisitor?: (orig: Algebra.Group) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Group>,
                        orig: Algebra.Group,
                    ) => unknown;
                };
                inv?: {
                    preVisitor?: (orig: Algebra.Inv) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Inv>,
                        orig: Algebra.Inv,
                    ) => unknown;
                };
                join?: {
                    preVisitor?: (orig: Algebra.Join) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Join>,
                        orig: Algebra.Join,
                    ) => unknown;
                };
                leftjoin?: {
                    preVisitor?: (orig: Algebra.LeftJoin) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.LeftJoin>,
                        orig: Algebra.LeftJoin,
                    ) => unknown;
                };
                link?: {
                    preVisitor?: (orig: Algebra.Link) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Link>,
                        orig: Algebra.Link,
                    ) => unknown;
                };
                load?: {
                    preVisitor?: (orig: Algebra.Load) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Load>,
                        orig: Algebra.Load,
                    ) => unknown;
                };
                minus?: {
                    preVisitor?: (orig: Algebra.Minus) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Minus>,
                        orig: Algebra.Minus,
                    ) => unknown;
                };
                move?: {
                    preVisitor?: (orig: Algebra.Move) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Move>,
                        orig: Algebra.Move,
                    ) => unknown;
                };
                nop?: {
                    preVisitor?: (orig: Algebra.Nop) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Nop>,
                        orig: Algebra.Nop,
                    ) => unknown;
                };
                nps?: {
                    preVisitor?: (orig: Algebra.Nps) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Nps>,
                        orig: Algebra.Nps,
                    ) => unknown;
                };
                OneOrMorePath?: {
                    preVisitor?: (orig: Algebra.OneOrMorePath) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.OneOrMorePath>,
                        orig: Algebra.OneOrMorePath,
                    ) => unknown;
                };
                orderby?: {
                    preVisitor?: (orig: Algebra.OrderBy) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.OrderBy>,
                        orig: Algebra.OrderBy,
                    ) => unknown;
                };
                path?: {
                    preVisitor?: (orig: Algebra.Path) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Path>,
                        orig: Algebra.Path,
                    ) => unknown;
                };
                pattern?: {
                    preVisitor?: (orig: Algebra.Pattern) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Pattern>,
                        orig: Algebra.Pattern,
                    ) => unknown;
                };
                project?: {
                    preVisitor?: (orig: Algebra.Project) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Project>,
                        orig: Algebra.Project,
                    ) => unknown;
                };
                reduced?: {
                    preVisitor?: (orig: Algebra.Reduced) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Reduced>,
                        orig: Algebra.Reduced,
                    ) => unknown;
                };
                seq?: {
                    preVisitor?: (orig: Algebra.Seq) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Seq>,
                        orig: Algebra.Seq,
                    ) => unknown;
                };
                service?: {
                    preVisitor?: (orig: Algebra.Service) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Service>,
                        orig: Algebra.Service,
                    ) => unknown;
                };
                slice?: {
                    preVisitor?: (orig: Algebra.Slice) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Slice>,
                        orig: Algebra.Slice,
                    ) => unknown;
                };
                union?: {
                    preVisitor?: (orig: Algebra.Union) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Union>,
                        orig: Algebra.Union,
                    ) => unknown;
                };
                values?: {
                    preVisitor?: (orig: Algebra.Values) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Values>,
                        orig: Algebra.Values,
                    ) => unknown;
                };
                ZeroOrMorePath?: {
                    preVisitor?: (orig: Algebra.ZeroOrMorePath) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.ZeroOrMorePath>,
                        orig: Algebra.ZeroOrMorePath,
                    ) => unknown;
                };
                ZeroOrOnePath?: {
                    preVisitor?: (orig: Algebra.ZeroOrOnePath) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.ZeroOrOnePath>,
                        orig: Algebra.ZeroOrOnePath,
                    ) => unknown;
                };
            },
        ): Safe extends "unsafe" ? OutType : unknown
      • Transform a single node. The transformation calls the preVisitor from starting from the startObject. The preVisitor can dictate whether transformation should be stopped. Note that stopping the transformation also prevets further copying. The transformer itself transforms object starting with the deepest one that can be visited. The transformer callback is performed on a copy of the original.

        Type Parameters

        • Safe extends Safeness = "safe"
        • OutType = unknown

        Parameters

        • startObject: object
        • nodeCallBacks: {
              add?: {
                  preVisitor?: (orig: Algebra.Add) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Add>,
                      orig: Algebra.Add,
                  ) => unknown;
              };
              alt?: {
                  preVisitor?: (orig: Algebra.Alt) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Alt>,
                      orig: Algebra.Alt,
                  ) => unknown;
              };
              ask?: {
                  preVisitor?: (orig: Algebra.Ask) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Ask>,
                      orig: Algebra.Ask,
                  ) => unknown;
              };
              bgp?: {
                  preVisitor?: (orig: Algebra.Bgp) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Bgp>,
                      orig: Algebra.Bgp,
                  ) => unknown;
              };
              clear?: {
                  preVisitor?: (orig: Algebra.Clear) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Clear>,
                      orig: Algebra.Clear,
                  ) => unknown;
              };
              compositeupdate?: {
                  preVisitor?: (orig: Algebra.CompositeUpdate) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.CompositeUpdate>,
                      orig: Algebra.CompositeUpdate,
                  ) => unknown;
              };
              construct?: {
                  preVisitor?: (orig: Algebra.Construct) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Construct>,
                      orig: Algebra.Construct,
                  ) => unknown;
              };
              copy?: {
                  preVisitor?: (orig: Algebra.Copy) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Copy>,
                      orig: Algebra.Copy,
                  ) => unknown;
              };
              create?: {
                  preVisitor?: (orig: Algebra.Create) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Create>,
                      orig: Algebra.Create,
                  ) => unknown;
              };
              deleteinsert?: {
                  preVisitor?: (orig: Algebra.DeleteInsert) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.DeleteInsert>,
                      orig: Algebra.DeleteInsert,
                  ) => unknown;
              };
              describe?: {
                  preVisitor?: (orig: Algebra.Describe) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Describe>,
                      orig: Algebra.Describe,
                  ) => unknown;
              };
              distinct?: {
                  preVisitor?: (orig: Algebra.Distinct) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Distinct>,
                      orig: Algebra.Distinct,
                  ) => unknown;
              };
              drop?: {
                  preVisitor?: (orig: Algebra.Drop) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Drop>,
                      orig: Algebra.Drop,
                  ) => unknown;
              };
              expression?: {
                  preVisitor?: (orig: Algebra.Expression) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Expression>,
                      orig: Algebra.Expression,
                  ) => unknown;
              };
              extend?: {
                  preVisitor?: (orig: Algebra.Extend) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Extend>,
                      orig: Algebra.Extend,
                  ) => unknown;
              };
              filter?: {
                  preVisitor?: (orig: Algebra.Filter) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Filter>,
                      orig: Algebra.Filter,
                  ) => unknown;
              };
              from?: {
                  preVisitor?: (orig: Algebra.From) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.From>,
                      orig: Algebra.From,
                  ) => unknown;
              };
              graph?: {
                  preVisitor?: (orig: Algebra.Graph) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Graph>,
                      orig: Algebra.Graph,
                  ) => unknown;
              };
              group?: {
                  preVisitor?: (orig: Algebra.Group) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Group>,
                      orig: Algebra.Group,
                  ) => unknown;
              };
              inv?: {
                  preVisitor?: (orig: Algebra.Inv) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Inv>,
                      orig: Algebra.Inv,
                  ) => unknown;
              };
              join?: {
                  preVisitor?: (orig: Algebra.Join) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Join>,
                      orig: Algebra.Join,
                  ) => unknown;
              };
              leftjoin?: {
                  preVisitor?: (orig: Algebra.LeftJoin) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.LeftJoin>,
                      orig: Algebra.LeftJoin,
                  ) => unknown;
              };
              link?: {
                  preVisitor?: (orig: Algebra.Link) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Link>,
                      orig: Algebra.Link,
                  ) => unknown;
              };
              load?: {
                  preVisitor?: (orig: Algebra.Load) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Load>,
                      orig: Algebra.Load,
                  ) => unknown;
              };
              minus?: {
                  preVisitor?: (orig: Algebra.Minus) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Minus>,
                      orig: Algebra.Minus,
                  ) => unknown;
              };
              move?: {
                  preVisitor?: (orig: Algebra.Move) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Move>,
                      orig: Algebra.Move,
                  ) => unknown;
              };
              nop?: {
                  preVisitor?: (orig: Algebra.Nop) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Nop>,
                      orig: Algebra.Nop,
                  ) => unknown;
              };
              nps?: {
                  preVisitor?: (orig: Algebra.Nps) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Nps>,
                      orig: Algebra.Nps,
                  ) => unknown;
              };
              OneOrMorePath?: {
                  preVisitor?: (orig: Algebra.OneOrMorePath) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.OneOrMorePath>,
                      orig: Algebra.OneOrMorePath,
                  ) => unknown;
              };
              orderby?: {
                  preVisitor?: (orig: Algebra.OrderBy) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.OrderBy>,
                      orig: Algebra.OrderBy,
                  ) => unknown;
              };
              path?: {
                  preVisitor?: (orig: Algebra.Path) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Path>,
                      orig: Algebra.Path,
                  ) => unknown;
              };
              pattern?: {
                  preVisitor?: (orig: Algebra.Pattern) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Pattern>,
                      orig: Algebra.Pattern,
                  ) => unknown;
              };
              project?: {
                  preVisitor?: (orig: Algebra.Project) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Project>,
                      orig: Algebra.Project,
                  ) => unknown;
              };
              reduced?: {
                  preVisitor?: (orig: Algebra.Reduced) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Reduced>,
                      orig: Algebra.Reduced,
                  ) => unknown;
              };
              seq?: {
                  preVisitor?: (orig: Algebra.Seq) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Seq>,
                      orig: Algebra.Seq,
                  ) => unknown;
              };
              service?: {
                  preVisitor?: (orig: Algebra.Service) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Service>,
                      orig: Algebra.Service,
                  ) => unknown;
              };
              slice?: {
                  preVisitor?: (orig: Algebra.Slice) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Slice>,
                      orig: Algebra.Slice,
                  ) => unknown;
              };
              union?: {
                  preVisitor?: (orig: Algebra.Union) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Union>,
                      orig: Algebra.Union,
                  ) => unknown;
              };
              values?: {
                  preVisitor?: (orig: Algebra.Values) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Values>,
                      orig: Algebra.Values,
                  ) => unknown;
              };
              ZeroOrMorePath?: {
                  preVisitor?: (orig: Algebra.ZeroOrMorePath) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.ZeroOrMorePath>,
                      orig: Algebra.ZeroOrMorePath,
                  ) => unknown;
              };
              ZeroOrOnePath?: {
                  preVisitor?: (orig: Algebra.ZeroOrOnePath) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.ZeroOrOnePath>,
                      orig: Algebra.ZeroOrOnePath,
                  ) => unknown;
              };
          }

        Returns Safe extends "unsafe" ? OutType : unknown