std::tuple<Handler<ElementObject>, Maybe<WorldSideEffect> > WorldObject::popElement() { Handler<World> const world = this->world(); WorldSideEffect anti; anti.op = AntiSideEffect::PushElement; anti.elm = world->rootElement(); world->popElement(); return std::tuple<Handler<ElementObject>, Maybe<WorldSideEffect> >(anti.elm->donutObject(), Just(anti)); }