<!--
RSS generated by JIRA (4.4#649-r158309) at Tue May 21 21:41:37 CDT 2013

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary add field=key&field=summary to the URL of your request.
For example:
http://dev.clojure.org/jira/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?jqlQuery=project+%3D+10020+AND+labels+%3D+bug&tempMax=1000&field=key&field=summary
-->
<!-- If you wish to do custom client-side styling of RSS, uncomment this:
<?xml-stylesheet href="http://dev.clojure.org/jira/styles/jiraxml2html.xsl" type="text/xsl"?>
-->
<rss version="0.92">
    <channel>
        <title>Clojure JIRA</title>
        <link>http://dev.clojure.org/jira/secure/IssueNavigator.jspa?reset=true&amp;jqlQuery=project+%3D+10020+AND+labels+%3D+bug</link>
        <description>An XML representation of a search request</description>
                <language>en-us</language>
                        <issue start="0" end="5" total="5"/>
                <build-info>
            <version>4.4</version>
            <build-number>649</build-number>
            <build-date>25-07-2011</build-date>
        </build-info>
<item>
            <title>[LOGIC-127] Swapping noms turns maps (and other collections) into seqs</title>
                <link>http://dev.clojure.org/jira/browse/LOGIC-127</link>
                <project id="10020" key="LOGIC">core.logic</project>
                        <description>&lt;p&gt;When I unify two binders, the swapping procedure turns all the maps inside the body into seqs of key/value pairs, which do not unify with maps, leading to the following trickiness:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;(require &apos;[clojure.core.logic :as l])
(require &apos;[clojure.core.logic.nominal :as n])
(l/run* [q]
  (l/fresh [body]
    (n/fresh [a b]
      (l/== (n/tie a {:k a}) (n/tie b body))
      (l/== {:k q} body))))
;=&amp;gt; ()
; Expected (a_0)&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;For my purposes, fixing this by adding two new implementations of INomSwap for vectors and maps works well.&lt;/p&gt;</description>
                <environment></environment>
            <key id="16121">LOGIC-127</key>
            <summary>Swapping noms turns maps (and other collections) into seqs</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                <priority id="3" iconUrl="http://dev.clojure.org/jira/images/icons/priority_major.gif">Major</priority>
                    <status id="5" iconUrl="http://dev.clojure.org/jira/images/icons/status_resolved.gif">Resolved</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="namin">Nada Amin</assignee>
                                <reporter username="jirkamarsik">Ji&#345;&#237; Mar&#353;&#237;k</reporter>
                        <labels>
                        <label>bug</label>
                        <label>nominal</label>
                    </labels>
                <created>Tue, 2 Apr 2013 11:11:52 -0500</created>
                <updated>Wed, 10 Apr 2013 03:33:00 -0500</updated>
                    <resolved>Wed, 10 Apr 2013 03:33:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>1</watches>
                        <comments>
                    <comment id="30854" author="jirkamarsik" created="Tue, 2 Apr 2013 11:14:44 -0500"  >&lt;p&gt;Oops, sorry for the malformatted code snippet. Here it is inside a code tag.&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;(require &apos;[clojure.core.logic :as l])
(require &apos;[clojure.core.logic.nominal :as n])
(l/run* [q]
        (l/fresh [body]
                 (n/fresh [a b]
                          (l/== (n/tie a {:k a}) (n/tie b body))
                          (l/== {:k q} body))))
;=&amp;gt; ()
; Expected (a_0)&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                    <comment id="30855" author="dnolen" created="Tue, 2 Apr 2013 11:22:17 -0500"  >&lt;p&gt;This seems like a easy one to fix, perhaps Nada can see quicker than I can. If not I can take a look.&lt;/p&gt;

&lt;p&gt;Also your patch may very well solve the issue best, feel free to attach it to the ticket. We won&apos;t be able to apply it until you&apos;ve submitted your Contributor Agreement - if you have a free moment please send it in. Thanks!&lt;/p&gt;</comment>
                    <comment id="30857" author="jirkamarsik" created="Tue, 2 Apr 2013 11:48:19 -0500"  >&lt;p&gt;The patch that I use to fix the issue. I haven&apos;t signed the CA, but I would definitely like to. Might take a while to arrive though, since I&apos;m in Europe and I&apos;m lazy.&lt;/p&gt;</comment>
                    <comment id="30862" author="namin" created="Wed, 3 Apr 2013 02:36:53 -0500"  >&lt;p&gt;The patch LGTM. I would also add a test from the ticket example.&lt;/p&gt;

&lt;p&gt;I guess we have to wait until the CA arrives, now.&lt;/p&gt;</comment>
                    <comment id="30863" author="jirkamarsik" created="Wed, 3 Apr 2013 04:28:06 -0500"  >&lt;p&gt;I have also added the test case, the new patch INomSwap-vectors-maps-with-test.patch contains both the fix and the test case. I have just signed the CA and I plan to post it today.&lt;/p&gt;</comment>
                    <comment id="30918" author="jirkamarsik" created="Tue, 9 Apr 2013 10:55:17 -0500"  >&lt;p&gt;OK, the CA has arrived and been processed.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://clojure.org/contributing&quot;&gt;http://clojure.org/contributing&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Jiri Marsik (jirkamarsik)&lt;/li&gt;
&lt;/ul&gt;
</comment>
                    <comment id="30920" author="namin" created="Wed, 10 Apr 2013 03:32:38 -0500"  >&lt;p&gt;Applied as &lt;a href=&quot;https://github.com/clojure/core.logic/commit/d73c836c0d4bab2af12b4bdedb31daad4a661fb6&quot;&gt;https://github.com/clojure/core.logic/commit/d73c836c0d4bab2af12b4bdedb31daad4a661fb6&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks!&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                    <attachment id="11936" name="INomSwap-vectors-maps.patch" size="807" author="jirkamarsik" created="Tue, 2 Apr 2013 11:48:19 -0500" />
                    <attachment id="11938" name="INomSwap-vectors-maps-with-test.patch" size="1885" author="jirkamarsik" created="Wed, 3 Apr 2013 04:28:06 -0500" />
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                <customfield id="customfield_10002" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                <customfieldname>Approval</customfieldname>
                <customfieldvalues>
                        <customfieldvalue key="10005">Accepted</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Global Rank</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[LOGIC-116] ClassCastException in core.logic depending on ordering</title>
                <link>http://dev.clojure.org/jira/browse/LOGIC-116</link>
                <project id="10020" key="LOGIC">core.logic</project>
                        <description>&lt;p&gt;I have two files:&lt;br/&gt;
1 -&lt;a href=&quot;https://github.com/m0smith/LogicPuzzles/blob/master/src/logicpuzzles/coresucceed.clj&quot;&gt;https://github.com/m0smith/LogicPuzzles/blob/master/src/logicpuzzles/coresucceed.clj&lt;/a&gt;&lt;br/&gt;
2 -&lt;a href=&quot;https://github.com/m0smith/LogicPuzzles/blob/master/src/logicpuzzles/corefail.clj&quot;&gt;https://github.com/m0smith/LogicPuzzles/blob/master/src/logicpuzzles/corefail.clj&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The first one compiles and runs fine.  The second throws a ClassCastException.  The only difference is that rule-0 is moved in the second file.&lt;/p&gt;</description>
                <environment></environment>
            <key id="16067">LOGIC-116</key>
            <summary>ClassCastException in core.logic depending on ordering</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                <priority id="3" iconUrl="http://dev.clojure.org/jira/images/icons/priority_major.gif">Major</priority>
                    <status id="5" iconUrl="http://dev.clojure.org/jira/images/icons/status_resolved.gif">Resolved</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="dnolen">David Nolen</assignee>
                                <reporter username="m0smith">Matthew O. Smith</reporter>
                        <labels>
                        <label>0.8.0</label>
                        <label>bug</label>
                    </labels>
                <created>Fri, 8 Mar 2013 13:47:44 -0600</created>
                <updated>Sun, 17 Mar 2013 18:29:49 -0500</updated>
                    <resolved>Sun, 17 Mar 2013 18:29:49 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>1</watches>
                        <comments>
                    <comment id="30724" author="dnolen" created="Mon, 11 Mar 2013 07:40:03 -0500"  >&lt;p&gt;There&apos;s far too much context here. Do you have a minimal case? Thanks much!&lt;/p&gt;</comment>
                    <comment id="30726" author="m0smith" created="Mon, 11 Mar 2013 09:15:57 -0500"  >&lt;p&gt;Here is the stack trace.  I will try to narrow it down further.&lt;/p&gt;

&lt;p&gt;java.lang.ClassCastException: clojure.lang.PersistentList cannot be cast to clojure.lang.IPersistentSet&lt;br/&gt;
 at clojure.core$disj.invoke (core.clj:1420)&lt;br/&gt;
    clojure.core.logic.ConstraintStore/fn (logic.clj:339)&lt;br/&gt;
    clojure.lang.ArrayChunk.reduce (ArrayChunk.java:58)&lt;br/&gt;
    clojure.core.protocols/fn (protocols.clj:94)&lt;br/&gt;
    clojure.core.protocols$fn_&lt;em&gt;5854$G&lt;/em&gt;&lt;em&gt;5849&lt;/em&gt;_5863.invoke (protocols.clj:19)&lt;br/&gt;
    clojure.core.protocols$seq_reduce.invoke (protocols.clj:31)&lt;br/&gt;
    clojure.core.protocols/fn (protocols.clj:60)&lt;br/&gt;
    clojure.core.protocols$fn_&lt;em&gt;5828$G&lt;/em&gt;&lt;em&gt;5823&lt;/em&gt;_5841.invoke (protocols.clj:13)&lt;br/&gt;
    clojure.core$reduce.invoke (core.clj:6030)&lt;br/&gt;
    clojure.core.logic.ConstraintStore.remc (logic.clj:338)&lt;br/&gt;
    clojure.core.logic$remcg$fn__3272.invoke (logic.clj:2374)&lt;br/&gt;
    clojure.core.logic$&lt;em&gt;BANG$reify&lt;/em&gt;_3422.invoke (logic.clj:2719)&lt;br/&gt;
    clojure.core.logic$composeg$fn__2569.invoke (logic.clj:1141)&lt;br/&gt;
    clojure.core.logic$composeg$fn__2569.invoke (logic.clj:1142)&lt;br/&gt;
    clojure.core.logic$run_constraint$fn__3285.invoke (logic.clj:2397)&lt;br/&gt;
    clojure.core.logic$fix_constraints.invoke (logic.clj:2424)&lt;br/&gt;
    clojure.core.logic$run_constraints$fn__3290.invoke (logic.clj:2434)&lt;br/&gt;
    clojure.core.logic.Substitutions.bind (logic.clj:612)&lt;br/&gt;
    clojure.core.logic$run_constraints_STAR_$fn__3296.invoke (logic.clj:2444)&lt;br/&gt;
    clojure.core.logic.Substitutions.bind (logic.clj:612)&lt;br/&gt;
    clojure.core.logic$run_constraints_STAR_$fn__3296.invoke (logic.clj:2446)&lt;br/&gt;
    clojure.core.logic$&lt;em&gt;EQ&lt;/em&gt;&lt;em&gt;EQ&lt;/em&gt;$fn__2647.invoke (logic.clj:1255)&lt;br/&gt;
    clojure.core.logic.Substitutions.bind (logic.clj:612)&lt;br/&gt;
    clojure.core.logic$rembero$fn_&lt;em&gt;3465$_inc&lt;/em&gt;&lt;em&gt;3466$fn&lt;/em&gt;&lt;em&gt;3475$fn&lt;/em&gt;&lt;em&gt;3476$_inc&lt;/em&gt;&lt;em&gt;3477$fn&lt;/em&gt;&lt;em&gt;3478$_inc&lt;/em&gt;_3479.invoke (logic.clj:2790)&lt;br/&gt;
    clojure.core.logic$eval2628$fn_&lt;em&gt;2633$_inc&lt;/em&gt;_2634.invoke (logic.clj:1223)&lt;br/&gt;
    clojure.core.logic$eval2628$fn_&lt;em&gt;2633$_inc&lt;/em&gt;_2634.invoke (logic.clj:1223)&lt;br/&gt;
    clojure.core.logic$eval2628$fn_&lt;em&gt;2637$_inc&lt;/em&gt;_2638.invoke (logic.clj:1220)&lt;br/&gt;
    clojure.core.logic$eval2628$fn_&lt;em&gt;2633$_inc&lt;/em&gt;_2634.invoke (logic.clj:1223)&lt;br/&gt;
    clojure.core.logic$eval2628$fn_&lt;em&gt;2633$_inc&lt;/em&gt;_2634.invoke (logic.clj:1223)&lt;br/&gt;
    clojure.core.logic$eval2628$fn_&lt;em&gt;2633$_inc&lt;/em&gt;_2634.invoke (logic.clj:1223)&lt;br/&gt;
    clojure.core.logic$eval2628$fn_&lt;em&gt;2637$_inc&lt;/em&gt;_2638.invoke (logic.clj:1220)&lt;br/&gt;
    clojure.core.logic$eval2628$fn_&lt;em&gt;2633$_inc&lt;/em&gt;_2634.invoke (logic.clj:1223)&lt;br/&gt;
    clojure.core.logic$eval2628$fn_&lt;em&gt;2637$_inc&lt;/em&gt;_2638.invoke (logic.clj:1220)&lt;br/&gt;
    clojure.core.logic$eval2628$fn_&lt;em&gt;2629$fn&lt;/em&gt;_2630.invoke (logic.clj:1225)&lt;br/&gt;
    clojure.lang.LazySeq.sval (LazySeq.java:42)&lt;br/&gt;
    clojure.lang.LazySeq.seq (LazySeq.java:67)&lt;br/&gt;
    clojure.lang.RT.seq (RT.java:473)&lt;br/&gt;
    clojure.core$seq.invoke (core.clj:133)&lt;br/&gt;
    clojure.core$take$fn__4112.invoke (core.clj:2501)&lt;br/&gt;
    clojure.lang.LazySeq.sval (LazySeq.java:42)&lt;br/&gt;
    clojure.lang.LazySeq.seq (LazySeq.java:60)&lt;br/&gt;
    clojure.lang.LazySeq.first (LazySeq.java:82)&lt;br/&gt;
    clojure.lang.RT.first (RT.java:566)&lt;br/&gt;
    clojure.core$first.invoke (core.clj:55)&lt;br/&gt;
    clojure.pprint$pprint_reader_macro.invoke (dispatch.clj:50)&lt;br/&gt;
    clojure.pprint$pprint_list.invoke (dispatch.clj:77)&lt;br/&gt;
    clojure.lang.MultiFn.invoke (MultiFn.java:163)&lt;br/&gt;
    clojure.pprint$write_out.invoke (pprint_base.clj:194)&lt;br/&gt;
    clojure.pprint$pprint_vector$fn__7949.invoke (dispatch.clj:83)&lt;br/&gt;
    clojure.pprint$pprint_vector.invoke (dispatch.clj:82)&lt;br/&gt;
    clojure.lang.MultiFn.invoke (MultiFn.java:163)&lt;br/&gt;
    clojure.pprint$write_out.invoke (pprint_base.clj:194)&lt;br/&gt;
    clojure.pprint$pprint$fn__7359.invoke (pprint_base.clj:250)&lt;br/&gt;
    clojure.pprint$pprint.invoke (pprint_base.clj:248)&lt;br/&gt;
    clojure.pprint$pprint.invoke (pprint_base.clj:245)&lt;br/&gt;
    logicpuzzles.corefail$show.invoke (corefail.clj:9)&lt;br/&gt;
    logicpuzzles.corefail$eval3796.invoke (corefail.clj:153)&lt;br/&gt;
    clojure.lang.Compiler.eval (Compiler.java:6511)&lt;br/&gt;
    clojure.lang.Compiler.load (Compiler.java:6952)&lt;br/&gt;
    user$eval971.invoke (NO_SOURCE_FILE:1)&lt;br/&gt;
    clojure.lang.Compiler.eval (Compiler.java:6511)&lt;br/&gt;
    clojure.lang.Compiler.eval (Compiler.java:6477)&lt;br/&gt;
    clojure.core$eval.invoke (core.clj:2797)&lt;br/&gt;
    clojure.main$repl$read_eval_print__6405.invoke (main.clj:245)&lt;br/&gt;
    clojure.main$repl$fn__6410.invoke (main.clj:266)&lt;br/&gt;
    clojure.main$repl.doInvoke (main.clj:266)&lt;br/&gt;
    clojure.lang.RestFn.invoke (RestFn.java:1096)&lt;br/&gt;
    clojure.tools.nrepl.middleware.interruptible_eval$evaluate$fn__544.invoke (interruptible_eval.clj:56)&lt;br/&gt;
    clojure.lang.AFn.applyToHelper (AFn.java:159)&lt;br/&gt;
    clojure.lang.AFn.applyTo (AFn.java:151)&lt;br/&gt;
    clojure.core$apply.invoke (core.clj:601)&lt;br/&gt;
    clojure.core$with_bindings_STAR_.doInvoke (core.clj:1771)&lt;br/&gt;
    clojure.lang.RestFn.invoke (RestFn.java:425)&lt;br/&gt;
    clojure.tools.nrepl.middleware.interruptible_eval$evaluate.invoke (interruptible_eval.clj:41)&lt;br/&gt;
    clojure.tools.nrepl.middleware.interruptible_eval$interruptible_eval$fn_&lt;em&gt;585$fn&lt;/em&gt;_587.invoke (interruptible_eval.clj:171)&lt;br/&gt;
    clojure.core$comp$fn__4034.invoke (core.clj:2278)&lt;br/&gt;
    clojure.tools.nrepl.middleware.interruptible_eval$run_next$fn__578.invoke (interruptible_eval.clj:138)&lt;br/&gt;
    clojure.lang.AFn.run (AFn.java:24)&lt;br/&gt;
    java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1145)&lt;br/&gt;
    java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:615)&lt;br/&gt;
    java.lang.Thread.run (Thread.java:722)&lt;/p&gt;</comment>
                    <comment id="30727" author="m0smith" created="Mon, 11 Mar 2013 09:24:33 -0500"  >&lt;p&gt;I tightened up the fail case &lt;a href=&quot;https://github.com/m0smith/LogicPuzzles/blob/master/src/logicpuzzles/corefail.clj&quot;&gt;https://github.com/m0smith/LogicPuzzles/blob/master/src/logicpuzzles/corefail.clj&lt;/a&gt; .  Is that enough?&lt;/p&gt;</comment>
                    <comment id="30728" author="dnolen" created="Mon, 11 Mar 2013 10:17:02 -0500"  >&lt;p&gt;Thanks can you add the failing code to the ticket as an attachment? Thanks.&lt;/p&gt;</comment>
                    <comment id="30735" author="m0smith" created="Mon, 11 Mar 2013 18:23:09 -0500"  >&lt;p&gt;corefail.clj exhibits the error&lt;/p&gt;</comment>
                    <comment id="30782" author="dnolen" created="Sun, 17 Mar 2013 18:29:49 -0500"  >&lt;p&gt;fixed, &lt;a href=&quot;http://github.com/clojure/core.logic/commit/7e4d0b6b71707e248fd4d0de3f6c090b50a18624&quot;&gt;http://github.com/clojure/core.logic/commit/7e4d0b6b71707e248fd4d0de3f6c090b50a18624&lt;/a&gt;&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                    <attachment id="11907" name="corefail.clj" size="2837" author="m0smith" created="Mon, 11 Mar 2013 18:23:09 -0500" />
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                            <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Global Rank</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[LOGIC-75] Combining maps and finite domains in core.logic returns only one result</title>
                <link>http://dev.clojure.org/jira/browse/LOGIC-75</link>
                <project id="10020" key="LOGIC">core.logic</project>
                        <description>&lt;p&gt;I&apos;m trying to combine maps with finite domains with some odd results.&lt;/p&gt;

&lt;p&gt;A simple query using finite domains correctly returns all values:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;(run* [q]
	  (fresh [x]
	    (infd x (interval 1 3))
	    (== q x)))
	
	;=&amp;gt; (1 2 3)&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;But putting this result in a map returns only the first value:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;(run* [q]
	  (fresh [x]
	    (infd x (interval 1 3))
	    (== q {:foo x})))
	
	;=&amp;gt; ({:foo 1})&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;FYI this works with vectors:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;(run* [q]
	  (fresh [x]
	    (infd x (interval 1 3))
	    (== q [x])))
	
	;=&amp;gt; ([1] [2] [3])&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;But lcons seems to fail as well:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;(run* [q]
	  (fresh [x]
	    (infd x (interval 1 3))
	    (== q (lcons x &apos;foo))))
	
	;=&amp;gt; ((1 . foo))&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment>Clojure 1.4.0, core.logic 0.8.0-beta2</environment>
            <key id="15881">LOGIC-75</key>
            <summary>Combining maps and finite domains in core.logic returns only one result</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                <priority id="3" iconUrl="http://dev.clojure.org/jira/images/icons/priority_major.gif">Major</priority>
                    <status id="5" iconUrl="http://dev.clojure.org/jira/images/icons/status_resolved.gif">Resolved</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="dnolen">David Nolen</assignee>
                                <reporter username="frederikdb">Frederik De Bleser</reporter>
                        <labels>
                        <label>bug</label>
                    </labels>
                <created>Tue, 11 Dec 2012 04:41:12 -0600</created>
                <updated>Wed, 12 Dec 2012 11:53:35 -0600</updated>
                    <resolved>Wed, 12 Dec 2012 11:53:35 -0600</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="30218" author="dnolen" created="Wed, 12 Dec 2012 11:53:35 -0600"  >&lt;p&gt;fixed, &lt;a href=&quot;http://github.com/clojure/core.logic/commit/c96402f3e60b1118446b3e681d98e444e4ce417d&quot;&gt;http://github.com/clojure/core.logic/commit/c96402f3e60b1118446b3e681d98e444e4ce417d&lt;/a&gt;&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                            <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Global Rank</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[LOGIC-74] Bug in conde (ClojureScript)</title>
                <link>http://dev.clojure.org/jira/browse/LOGIC-74</link>
                <project id="10020" key="LOGIC">core.logic</project>
                        <description>&lt;p&gt;While working on a project I found a somewhat strange behaviour. I reworked the problem in some simple predicate. Let&apos;s take this predicate foobad.&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;(defn foobad 
  [?bar]
  (l/project [?bar]
    (l/fresh [?&lt;span class=&quot;code-keyword&quot;&gt;var&lt;/span&gt;]
      (l/conde 
        [(l/== &lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt; (instance? js/Array ?bar))
          (membero ?&lt;span class=&quot;code-keyword&quot;&gt;var&lt;/span&gt; (seq ?bar))]))))&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;When running (l/run* &lt;span class=&quot;error&quot;&gt;&amp;#91;?f&amp;#93;&lt;/span&gt; (foobad 0)) it produces this error:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;#&amp;lt;Error: No protocol method ISeqable.-seq defined for type number: 0&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Because 0 is not an instance of Array it should not be entering that conde clause where it tries (seq 0).&lt;/p&gt;

&lt;p&gt;With this workaround we get a normal behaviour:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;(defn foo 
  [?bar]
  (l/project [?bar]
    (l/fresh [?&lt;span class=&quot;code-keyword&quot;&gt;var&lt;/span&gt;]
      (l/conde 
        [(l/== &lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt; (instance? js/Array ?bar)) 
         (fresh [?s]
          (l/== ?s (seq ?bar))
          (membero ?&lt;span class=&quot;code-keyword&quot;&gt;var&lt;/span&gt; ?s))]))))&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt; 

&lt;p&gt;Running (l/run* &lt;span class=&quot;error&quot;&gt;&amp;#91;?f&amp;#93;&lt;/span&gt; (foo 0)) gives us (), which is what we expect.&lt;br/&gt;
While 0 is clearly not an instance of Array that conde clause is still executed resulting in previous error.&lt;/p&gt;</description>
                <environment>[org.clojure/clojure &amp;quot;1.4.0&amp;quot;]&lt;br/&gt;
[org.clojure/core.logic &amp;quot;0.8.0-beta2&amp;quot;]</environment>
            <key id="15857">LOGIC-74</key>
            <summary>Bug in conde (ClojureScript)</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                <priority id="4" iconUrl="http://dev.clojure.org/jira/images/icons/priority_minor.gif">Minor</priority>
                    <status id="5" iconUrl="http://dev.clojure.org/jira/images/icons/status_resolved.gif">Resolved</status>
                    <resolution id="2">Declined</resolution>
                                <assignee username="dnolen">David Nolen</assignee>
                                <reporter username="kdevalck">Kevin De Valck</reporter>
                        <labels>
                        <label>bug</label>
                    </labels>
                <created>Mon, 26 Nov 2012 03:45:48 -0600</created>
                <updated>Sun, 17 Mar 2013 19:00:30 -0500</updated>
                    <resolved>Sun, 17 Mar 2013 19:00:30 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>1</watches>
                        <comments>
                    <comment id="30335" author="dnolen" created="Fri, 28 Dec 2012 00:49:59 -0600"  >&lt;p&gt;I&apos;m assuming this is referring the ClojureScript version of core.logic?&lt;/p&gt;</comment>
                    <comment id="30786" author="dnolen" created="Sun, 17 Mar 2013 19:00:30 -0500"  >&lt;p&gt;This is not a bug. Goals do not delay evaluation in this way.&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                            <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Global Rank</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[LOGIC-52] Bug in finite domains (+fd, infd)</title>
                <link>http://dev.clojure.org/jira/browse/LOGIC-52</link>
                <project id="10020" key="LOGIC">core.logic</project>
                        <description>&lt;p&gt;When running the code:&lt;/p&gt;

&lt;p&gt;(run* &lt;span class=&quot;error&quot;&gt;&amp;#91;q&amp;#93;&lt;/span&gt;&lt;br/&gt;
  (fresh &lt;span class=&quot;error&quot;&gt;&amp;#91;a b c d&amp;#93;&lt;/span&gt;&lt;br/&gt;
    (infd a b c d (domain 1 3 4 5))&lt;br/&gt;
    (+fd b 1 a)&lt;br/&gt;
    (+fd c 1 b)&lt;br/&gt;
    (+fd d 1 c)&lt;br/&gt;
    (== q &lt;span class=&quot;error&quot;&gt;&amp;#91;a b c d&amp;#93;&lt;/span&gt;)))&lt;/p&gt;

&lt;p&gt;I get the ouput:&lt;/p&gt;

&lt;p&gt;(&lt;span class=&quot;error&quot;&gt;&amp;#91;5 4 3 1&amp;#93;&lt;/span&gt;)&lt;/p&gt;

&lt;p&gt;But I would expect:&lt;/p&gt;

&lt;p&gt;()&lt;/p&gt;

&lt;p&gt;Because &lt;span class=&quot;error&quot;&gt;&amp;#91;5 4 3 1&amp;#93;&lt;/span&gt; is no sequence where the next element is always one number higher than the one before.&lt;/p&gt;

&lt;p&gt;It seems to me like +fd behaves as it would take the next element in the domain, instead of taking the next higher number (I hope I didn&apos;t misunderstand +fd or infd).&lt;/p&gt;</description>
                <environment>Clojure 1.4, core.logic 0.8-alpha3</environment>
            <key id="15690">LOGIC-52</key>
            <summary>Bug in finite domains (+fd, infd)</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                <priority id="3" iconUrl="http://dev.clojure.org/jira/images/icons/priority_major.gif">Major</priority>
                    <status id="5" iconUrl="http://dev.clojure.org/jira/images/icons/status_resolved.gif">Resolved</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="dnolen">David Nolen</assignee>
                                <reporter username="naeg">naeg</reporter>
                        <labels>
                        <label>+fd</label>
                        <label>bug</label>
                        <label>finite-domains</label>
                        <label>infd</label>
                    </labels>
                <created>Mon, 10 Sep 2012 16:50:28 -0500</created>
                <updated>Fri, 26 Oct 2012 01:03:46 -0500</updated>
                    <resolved>Fri, 26 Oct 2012 01:03:46 -0500</resolved>
                                                                    <due></due>
                    <votes>1</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="29425" author="naeg" created="Tue, 11 Sep 2012 16:48:06 -0500"  >&lt;p&gt;There is workaround using membero:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;(run* [q]
  (fresh [a b c d]
    (everyg #(membero % [1 3 4 5]) [a b c d])
    (+fd b 1 a)
    (+fd c 1 b)
    (+fd d 1 c)
    (== q [a b c d])))&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;=&amp;gt; ()&lt;/p&gt;

&lt;p&gt;Note that this is quite a lot slower than it would be with infd.&lt;/p&gt;</comment>
                    <comment id="29807" author="dnolen" created="Fri, 26 Oct 2012 01:03:46 -0500"  >&lt;p&gt;This is fixed try the latest 0.8.0 beta&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                            <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Global Rank</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>
</channel>
</rss>