Initial commit containing list zippers
List zippers are now indexed.
Numeric instances for applicative functors; more to come.
Added modify function to modify at the cursor
Factored out zipLoeb into fix . zipApply, and removed zipTo line from <*> in Applicative instance.
Name changes for concision
Added some error messages for cases which can't occur: when a zipper is non-infinite; also renamed listZipper to zipper
Zippers on a plane are nested zippers on a list
Changed the semantics of insertR and insertL so that they behave more intuitively: they insert left and right of the cursor, without moving the cursor
Fixed confusion between up/down left/right in implementation; renamed type variables to `r' and `c' to denote row and column
Code cleanup for concision
Refactoring the implementation of zipLoeb led to an "Aha!" moment about how to implement it for any dimensionality, and I did so for the 2D case. Yay!
Added the ability to insert and delete cells.
Reverted to old behavior for insertR / insertL; now it makes sense, in the spreadsheet context.
New numeric instances; sadly, requires UndecidableInstances and OverlappingInstances, but seems pretty safe in this case.
Added accessor combinators, and an experimental example or two. More work to be done on constructing a sheet from a list of lists in a useful manner.
Made snappy creation of sheets possible from lists.
Made the fibs example more elegant
Made type signature more legible
Made fibs even slicker