}
+bool InsetMathRoot::idxForward(Cursor & cur) const
+{
+ // nucleus is 0 and is on the right
+ if (cur.idx() == 0)
+ return false;
+
+ cur.idx() = 0;
+ cur.pos() = 0;
+ return true;
+}
+
+
+bool InsetMathRoot::idxBackward(Cursor & cur) const
+{
+ // nucleus is 0 and is on the right
+ if (cur.idx() == 1)
+ return false;
+
+ cur.idx() = 1;
+ cur.pos() = cur.lastpos();
+ return true;
+}
+
+
+bool InsetMathRoot::idxFirst(Cursor & cur) const
+{
+ LASSERT(&cur.inset() == this, return false);
+ cur.idx() = 1;
+ cur.pos() = 0;
+ return true;
+}
+
+
+bool InsetMathRoot::idxLast(Cursor & cur) const
+{
+ LASSERT(&cur.inset() == this, return false);
+ cur.idx() = 0;
+ cur.pos() = cur.lastpos();
+ return true;
+}
+
+
void InsetMathRoot::maple(MapleStream & os) const
{
os << '(' << cell(0) << ")^(1/(" << cell(1) <<"))";