I would use both `Child? v, Action` and Type? v, Action` here and raise for rest