- proc open(fai: var Fai; path: string): bool {...}{.raises: [IOError], tags: [WriteIOEffect].}
- 
open an fai and return a bool indicating success
- proc len(fai: Fai): int {...}{.inline, raises: [], tags: [].}
- 
the number of sequences in the index.
- proc chrom_len(fai: Fai; chrom: string): int {...}{.raises: [ValueError], tags: [].}
- 
return the length of the requested chromosome.
- proc `[]`(fai: Fai; i: int): string {...}{.inline, raises: [], tags: [].}
- 
return the name of the i'th sequence.
- proc cget(fai: Fai; region: string; start: int = 0; stop: int = 0): cstring {...}{.inline,
    raises: [KeyError, IOError], tags: [WriteIOEffect].}
- 
get the sequence for the specified region (chr1:10-20) or chromosome and start, end, e.g. "chr1", 9, 20 the user is responsible for freeing the result.
- proc get(fai: Fai; region: string; start: int = 0; stop: int = 0): string {...}{.
    raises: [KeyError, IOError], tags: [WriteIOEffect].}
- 
get the sequence for the specified region (chr1:10-20) or chromosome and start, end, e.g. "chr1", 9, 20