added booleans
added finite sets and some bits to nats to support them
added indexing for vectors using finite sets
added *** combinator for products
added paths, typing for paths, and a prefix-paths function