suite.test('fromRangeStart', function () {
   setupHtml('abc');
   CaretAsserts.assertCaretPosition(CaretPosition.fromRangeStart(createRange(getRoot(), 0)), CaretPosition(getRoot(), 0));
   CaretAsserts.assertCaretPosition(CaretPosition.fromRangeStart(createRange(getRoot(), 1)), CaretPosition(getRoot(), 1));
   CaretAsserts.assertCaretPosition(
     CaretPosition.fromRangeStart(createRange(getRoot().firstChild, 1)),
     CaretPosition(getRoot().firstChild, 1)
   );
 });
 const readLocation = function (editor) {
   const isInlineTarget = Fun.curry(InlineUtils.isInlineTarget, editor);
   return BoundaryLocation
     .readLocation(isInlineTarget, editor.getBody(), CaretPosition.fromRangeStart(editor.selection.getRng()))
     .map(locationName)
     .getOr('none');
 };