* refactor: make internal and leaf use same type of cache
* refactor: add cache update
* test : add normalization to arb test
* test: fuzz
* fix: internal insert bug
* fix: missing utf16
* test: fix test sub overflow
* feat: use heapless for binary heap
* refactor: refine warning
* test: reduce test time
* perf: reduce computation when finding pos
* bench: fix ignore parse time in benching
* feat: make it compile in new sig (should be merged)
* fix: type err
* fix: fix type err
* fix: cache when merge & borrow
* refactor: simplify code
* fix: cumulated tree trait bug
* fix: a few fatal bugs (still buggy)
* fix: global tree trait
* refactor: rm an unused fn
* fix: insert at cursor bug
* fix: in cursor insert cache may be invalid
strip the checker there
* chore: remove needless check
* refactor: add inline to methods
* test: remove cfg=mem for mem example
* fix: type err
`crdt-list` expected derefed cursor to be a sliced operation, but it was not.
so I updated crdt-list to use a GetOp trait instead of Deref, where
users may slice the op if they want to.