; At its core, an editor is a 2D array of characters and a cursor. given [ editor 5 5 ] Cursor should be at (0 0) now [ type "abc" ] Cursor should be at (0 3) "abc" should be at (0 0) Trace should contain [ typed "a" typed "b" typed "c" ]