<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Clojure Q&amp;A - Recent questions tagged derive</title>
<link>https://ask.clojure.org/index.php/tag/derive</link>
<description></description>
<item>
<title>`derive [tag] [parent]` accepts non namespaced keyword/symbol as `tag` ?</title>
<link>https://ask.clojure.org/index.php/14759/derive-tag-parent-accepts-non-namespaced-keyword-symbol-tag</link>
<description>&lt;p&gt;Hello &lt;/p&gt;
&lt;p&gt;&lt;code&gt;derive&lt;/code&gt;'s doc says:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Establishes a parent/child relationship between parent and&lt;br&gt;
  tag. &lt;strong&gt;Parent must be a namespace-qualified symbol or keyword and&lt;br&gt;
  child can be either a namespace-qualified symbol or keyword or a&lt;br&gt;
  class.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;But in practice,  ClojureScript accepts non-namespaced tag:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;(derive :a ::b)
; nil
(isa? :a ::b)
; true
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Clojure throws.&lt;/p&gt;
&lt;p&gt;Is ClojureScript behavior expected or a bug?&lt;/p&gt;
&lt;p&gt;Same question for the &lt;code&gt;derive [h tag parent]&lt;/code&gt; form, which seems to accept non-namespaced keyword/symbol for both tag and parent, this time on both Clojure and ClojureScript:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;(derive (make-hierarchy) :a :b)
; {:parents {:a #{:b}}, :ancestors {:a #{:b}}, :descendants {:b #{:a}}}
&lt;/code&gt;&lt;/pre&gt;
</description>
<category>ClojureScript</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/14759/derive-tag-parent-accepts-non-namespaced-keyword-symbol-tag</guid>
<pubDate>Wed, 19 Nov 2025 21:23:15 +0000</pubDate>
</item>
</channel>
</rss>