pellucidanalytics/datomisca — pull request #91 by dwhjames (2013-11-16 21:36:38+00:00)
Title: Eliminate DatomicData hierarchy

This pull request aims to make Datomisca much more lightweight:

- Eliminate the DatomicData type hierarchy, to eliminate the syntactic and runtime overhead of wrapping all Datomic type.
- Rely on the type classes instead to provide the equivalent type safety
- remove Namespaceable trait
- use Clojure’s keyword and use a type alias to provide a modicum of API compatibility
- try to eliminate the cases where keywords are explicitly constructed, and instead rely on the Namespace construct
- no longer need the common project for the macro project to depend on, so merge common into core
- rename `DRef` and `ToDRef` to better fit its special case: now `DatomicRef.type` is used as a phantom type param and the type class is `AsDatomicRef`
- rename DDatom to Datom and make it an AnyVal
- rename DRules to QueryRules and make it an AnyVal (placed into the macro project)
- rename DEntity to Entity and make it an AnyVal
- rename DDatabase to Database
- split up the remaining DatomicData file into the various type classes and core types
- extract AsPointT type class into its own file (and tweak return type from Any to AnyRef)
- eiminate Nativeable, DataFunction traits, rename Operation to TxData
- rename DId.toNative to toDatomidId
- Operation.toNative becomes TxData.toTxData
- clean up operations file
- remove Props in favor of SchemaEntityBuilder