TODO:
* continue implementing next level of functions
    * see "Other TODO" and "iteration-related functions" below for remaining functions
    * consider whether lock functions should take in inode instead of sb (and return Lock type?)
    * vfat_rename not implemented in Cogent (linearity)
* time:
    * main: fix up how timespec/Time are treated in C
    * (consider) merge or split up time-setting functions
* continue adding in SysState - currently incrementally adding it in everywhere
* change VfsInode, VfsDentry, Superblock into concrete Cogent types

Iteration-Related Functions:
* vfat_build_slots_ac: (VfsInode, U64, U32, U32, U32, Time) -> RR VfsInode (U64, U32) ErrPtr
* fat_free_clusters_ac: (VfsInode, U32) -> VfsInode
* fat_iget_ac: (Superblock, U64) -> RR Superblock () ErrPtr
  * uses hlist\_for\_... macro
* deep_fat_remove_entries_ac: (VfsInode, U64, U32) -> R VfsInode VfsInode
  * written up, but messed up somehow - debug later - see bottom of super.cogent file
  * this function and the ones below use fat_get_entry, which may be the problem
* fat_add_entries_ac: (VfsInode, U64, U32) -> RR VfsInode SlotInfo ErrPtr
* fat_search_long_ac: (VfsInode, U64, U32) -> RR VfsInode SlotInfo ErrPtr
* fat_dir_empty_ac: VfsInode -> R () ErrPtr

Other TODO:
* fat_alloc_new_dir_ac: (VfsInode, Time) -> RR VfsInode U32 ErrPtr
  * begun - see bottom of super.cogent.
* deep_fat_write_inode_ac: (VfsInode, U32) -> VfsInode
* delete_first_ac: U64 -> U64
* fat_fill_inode_ac: (VfsInode, U64) -> R VfsInode (VfsInode, ErrPtr)
