 Note that it is preferable to use this exclusively to ensure
 a consistent key structure.
 
-:param: persistable A Persistable type instance
-:returns: A String
+- parameter persistable: A Persistable type instance
+- returns: A String
 */
 public func keyForPersistable<P: Persistable>(persistable: P) -> String {
     return "\(persistable.identifier)"

    their basis.

    :param: block A closure which receives YapDatabaseReadTransaction and returns T
    :returns: An instance of T
    */
    public func read<T>(block: (YapDatabaseReadTransaction) -> T) -> T {
        var result: T! = .None

A simple function which generates a YapDB.Index from a Persistable
instance. All write(_:) store objects in the database using this function.

- parameter persistable: A Persistable type instance
- returns: A YapDB.Index
*/
public func indexForPersistable<P: Persistable>(persistable: P) -> YapDB.Index {
    return YapDB.Index(collection: persistable.dynamicType.collection, key: keyForPersistable(persistable))
