Hodur is a domain modeling approach and collection of libraries to Clojure. By using Hodur you can define your domain model as data, parse and validate it, and then either consume your model via an API or use one of the many plugins to help you achieve mechanical results faster and in a purely functional manner.
(let [conn (hodur/init-schema '[A [^{:type String} b]])] (hodur/extend-schema conn '[C [^{:type String} d]]) (->> @conn (d/q '[:find [(pull ?e [ {:field/_parent [ {:field/type [*]}]}]) ...] :where [?e :type/name] [?e :type/nature :user]]) (mapv (comp :field/type first :field/_parent))))
Not sure if this is the intended behaviour for extend-schema but I would expect the string primitive type to be returned for the d field as well