<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Mariano Guerra's Log (Publicaciones sobre crdts)</title><link>http://marianoguerra.org/</link><description></description><atom:link href="http://marianoguerra.org/es/categories/crdts.xml" rel="self" type="application/rss+xml"></atom:link><language>es</language><lastBuildDate>Mon, 18 Nov 2024 17:56:42 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Playing with Lasp and CRDTs</title><link>http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/</link><dc:creator>Mariano Guerra</dc:creator><description>&lt;p&gt;For a long time I was looking for some time to play with &lt;a class="reference external" href="https://lasp-lang.org/"&gt;Lasp&lt;/a&gt;:&lt;/p&gt;
&lt;pre class="literal-block"&gt;Lasp is a suite of libraries aimed at providing a comprehensive programming
system for planetary scale Elixir and Erlang applications.&lt;/pre&gt;
&lt;p&gt;Yesterday I had some time and played a little bit with it, and thanks to the
help from &lt;a class="reference external" href="https://twitter.com/cmeik"&gt;@cmeik&lt;/a&gt; and &lt;a class="reference external" href="https://twitter.com/vitorenesduarte"&gt;@vitorenesduarte&lt;/a&gt; I got some code running and understood some things.&lt;/p&gt;
&lt;p&gt;Here is what I achieved until now, note that I'm learning this stuff so I may
say many things that are wrong, I will try to get people to review it and
update it with the corrections.&lt;/p&gt;
&lt;p&gt;Some initial snippets of code we will reuse:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code erlang"&gt;&lt;a id="rest_code_4d28da28b23c45dc8b009c6f56be8016-1" name="rest_code_4d28da28b23c45dc8b009c6f56be8016-1" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_4d28da28b23c45dc8b009c6f56be8016-1"&gt;&lt;/a&gt;&lt;span class="c"&gt;% clear all variable bindings&lt;/span&gt;
&lt;a id="rest_code_4d28da28b23c45dc8b009c6f56be8016-2" name="rest_code_4d28da28b23c45dc8b009c6f56be8016-2" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_4d28da28b23c45dc8b009c6f56be8016-2"&gt;&lt;/a&gt;&lt;span class="nf"&gt;f&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;
&lt;a id="rest_code_4d28da28b23c45dc8b009c6f56be8016-3" name="rest_code_4d28da28b23c45dc8b009c6f56be8016-3" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_4d28da28b23c45dc8b009c6f56be8016-3"&gt;&lt;/a&gt;&lt;span class="nv"&gt;Key1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s"&gt;"key1"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_4d28da28b23c45dc8b009c6f56be8016-4" name="rest_code_4d28da28b23c45dc8b009c6f56be8016-4" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_4d28da28b23c45dc8b009c6f56be8016-4"&gt;&lt;/a&gt;&lt;span class="nv"&gt;Key2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s"&gt;"key2"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_4d28da28b23c45dc8b009c6f56be8016-5" name="rest_code_4d28da28b23c45dc8b009c6f56be8016-5" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_4d28da28b23c45dc8b009c6f56be8016-5"&gt;&lt;/a&gt;&lt;span class="nv"&gt;Timestamp&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;fun&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;erlang&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;unique_integer&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;monotonic&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;positive&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;section id="a-map-with-any-type-as-value"&gt;
&lt;h2&gt;A map with any type as value&lt;/h2&gt;
&lt;p&gt;If we want to have data which can be represented as a dict/map/key-value mapping,
there are multiple alternatives we can use in lasp, here we will explore some.&lt;/p&gt;
&lt;p&gt;First we are going to use an &lt;a class="reference external" href="https://github.com/lasp-lang/types/blob/master/src/state_awmap.erl"&gt;AwMap CRDT&lt;/a&gt; as a map which is defined as:&lt;/p&gt;
&lt;pre class="literal-block"&gt;A dictionary where keys can be anything and the values are causal-CRDTs.&lt;/pre&gt;
&lt;p&gt;Since values must be casual-CRDTs we can't use a bare erlang type as value nor
a non causal-CRDT type like lwwregister, which we will use later with another
map type.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code erlang"&gt;&lt;a id="rest_code_42fb6c7611bf44d4b29316467957d037-1" name="rest_code_42fb6c7611bf44d4b29316467957d037-1" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_42fb6c7611bf44d4b29316467957d037-1"&gt;&lt;/a&gt;&lt;span class="nv"&gt;AwMapType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;state_awmap&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;state_mvregister&lt;/span&gt;&lt;span class="p"&gt;]}.&lt;/span&gt;
&lt;a id="rest_code_42fb6c7611bf44d4b29316467957d037-2" name="rest_code_42fb6c7611bf44d4b29316467957d037-2" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_42fb6c7611bf44d4b29316467957d037-2"&gt;&lt;/a&gt;&lt;span class="nv"&gt;AwMapVarName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s"&gt;"awmap"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_42fb6c7611bf44d4b29316467957d037-3" name="rest_code_42fb6c7611bf44d4b29316467957d037-3" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_42fb6c7611bf44d4b29316467957d037-3"&gt;&lt;/a&gt;&lt;span class="nv"&gt;AwMapVal&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;what&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;i_am_an_awmap_value&lt;/span&gt;&lt;span class="p"&gt;}.&lt;/span&gt;
&lt;a id="rest_code_42fb6c7611bf44d4b29316467957d037-4" name="rest_code_42fb6c7611bf44d4b29316467957d037-4" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_42fb6c7611bf44d4b29316467957d037-4"&gt;&lt;/a&gt;
&lt;a id="rest_code_42fb6c7611bf44d4b29316467957d037-5" name="rest_code_42fb6c7611bf44d4b29316467957d037-5" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_42fb6c7611bf44d4b29316467957d037-5"&gt;&lt;/a&gt;&lt;span class="c"&gt;% declare the variable&lt;/span&gt;
&lt;a id="rest_code_42fb6c7611bf44d4b29316467957d037-6" name="rest_code_42fb6c7611bf44d4b29316467957d037-6" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_42fb6c7611bf44d4b29316467957d037-6"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;AwMap&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;declare&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="nv"&gt;AwMapVarName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AwMapType&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AwMapType&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_42fb6c7611bf44d4b29316467957d037-7" name="rest_code_42fb6c7611bf44d4b29316467957d037-7" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_42fb6c7611bf44d4b29316467957d037-7"&gt;&lt;/a&gt;
&lt;a id="rest_code_42fb6c7611bf44d4b29316467957d037-8" name="rest_code_42fb6c7611bf44d4b29316467957d037-8" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_42fb6c7611bf44d4b29316467957d037-8"&gt;&lt;/a&gt;&lt;span class="c"&gt;% update its content setting Key1 = AwMapVal&lt;/span&gt;
&lt;a id="rest_code_42fb6c7611bf44d4b29316467957d037-9" name="rest_code_42fb6c7611bf44d4b29316467957d037-9" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_42fb6c7611bf44d4b29316467957d037-9"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;AwMap1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AwMap&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nb"&gt;apply&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Key1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;a id="rest_code_42fb6c7611bf44d4b29316467957d037-10" name="rest_code_42fb6c7611bf44d4b29316467957d037-10" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_42fb6c7611bf44d4b29316467957d037-10"&gt;&lt;/a&gt;&lt;span class="w"&gt;                                              &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;set&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Timestamp&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AwMapVal&lt;/span&gt;&lt;span class="p"&gt;}},&lt;/span&gt;
&lt;a id="rest_code_42fb6c7611bf44d4b29316467957d037-11" name="rest_code_42fb6c7611bf44d4b29316467957d037-11" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_42fb6c7611bf44d4b29316467957d037-11"&gt;&lt;/a&gt;&lt;span class="w"&gt;                                      &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_42fb6c7611bf44d4b29316467957d037-12" name="rest_code_42fb6c7611bf44d4b29316467957d037-12" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_42fb6c7611bf44d4b29316467957d037-12"&gt;&lt;/a&gt;&lt;span class="c"&gt;% timestamp argument is not needed in mvregister, it's only for compatibility&lt;/span&gt;
&lt;a id="rest_code_42fb6c7611bf44d4b29316467957d037-13" name="rest_code_42fb6c7611bf44d4b29316467957d037-13" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_42fb6c7611bf44d4b29316467957d037-13"&gt;&lt;/a&gt;&lt;span class="c"&gt;% with lwwregister&lt;/span&gt;
&lt;a id="rest_code_42fb6c7611bf44d4b29316467957d037-14" name="rest_code_42fb6c7611bf44d4b29316467957d037-14" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_42fb6c7611bf44d4b29316467957d037-14"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AwMap&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nb"&gt;apply&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Key1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;set&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;nil&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AwMapVal&lt;/span&gt;&lt;span class="p"&gt;}},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_42fb6c7611bf44d4b29316467957d037-15" name="rest_code_42fb6c7611bf44d4b29316467957d037-15" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_42fb6c7611bf44d4b29316467957d037-15"&gt;&lt;/a&gt;
&lt;a id="rest_code_42fb6c7611bf44d4b29316467957d037-16" name="rest_code_42fb6c7611bf44d4b29316467957d037-16" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_42fb6c7611bf44d4b29316467957d037-16"&gt;&lt;/a&gt;&lt;span class="c"&gt;% get the value&lt;/span&gt;
&lt;a id="rest_code_42fb6c7611bf44d4b29316467957d037-17" name="rest_code_42fb6c7611bf44d4b29316467957d037-17" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_42fb6c7611bf44d4b29316467957d037-17"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AwMapRes&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AwMap1&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_42fb6c7611bf44d4b29316467957d037-18" name="rest_code_42fb6c7611bf44d4b29316467957d037-18" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_42fb6c7611bf44d4b29316467957d037-18"&gt;&lt;/a&gt;
&lt;a id="rest_code_42fb6c7611bf44d4b29316467957d037-19" name="rest_code_42fb6c7611bf44d4b29316467957d037-19" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_42fb6c7611bf44d4b29316467957d037-19"&gt;&lt;/a&gt;&lt;span class="nv"&gt;AwMapRes&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_42fb6c7611bf44d4b29316467957d037-20" name="rest_code_42fb6c7611bf44d4b29316467957d037-20" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_42fb6c7611bf44d4b29316467957d037-20"&gt;&lt;/a&gt;&lt;span class="c"&gt;% {ok,[{&amp;lt;&amp;lt;"key1"&amp;gt;&amp;gt;, {set, ...#{what =&amp;gt; i_am_an_awmap_value} ... }}]}&lt;/span&gt;
&lt;a id="rest_code_42fb6c7611bf44d4b29316467957d037-21" name="rest_code_42fb6c7611bf44d4b29316467957d037-21" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_42fb6c7611bf44d4b29316467957d037-21"&gt;&lt;/a&gt;
&lt;a id="rest_code_42fb6c7611bf44d4b29316467957d037-22" name="rest_code_42fb6c7611bf44d4b29316467957d037-22" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_42fb6c7611bf44d4b29316467957d037-22"&gt;&lt;/a&gt;&lt;span class="p"&gt;[{_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AwMapSet&lt;/span&gt;&lt;span class="p"&gt;}]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AwMapRes&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_42fb6c7611bf44d4b29316467957d037-23" name="rest_code_42fb6c7611bf44d4b29316467957d037-23" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_42fb6c7611bf44d4b29316467957d037-23"&gt;&lt;/a&gt;&lt;span class="nn"&gt;sets&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;to_list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AwMapSet&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_42fb6c7611bf44d4b29316467957d037-24" name="rest_code_42fb6c7611bf44d4b29316467957d037-24" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_42fb6c7611bf44d4b29316467957d037-24"&gt;&lt;/a&gt;&lt;span class="c"&gt;% [#{what =&amp;gt; i_am_an_awmap_value}]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;We can also use a &lt;a class="reference external" href="https://github.com/lasp-lang/types/blob/master/src/state_gmap.erl"&gt;GMap CRDT&lt;/a&gt; (Grow Only Map, keys can't be removed):&lt;/p&gt;
&lt;pre class="literal-block"&gt;A dictionary where keys can be anything and the values are join-semilattices.&lt;/pre&gt;
&lt;p&gt;In this case we can use non causal-CRDTs as values, to make it a little different
we are going to use another register type, a &lt;a class="reference external" href="https://github.com/lasp-lang/types/blob/master/src/state_lwwregister.erl"&gt;lwwregister&lt;/a&gt;&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code erlang"&gt;&lt;a id="rest_code_13870153729a49d4bfc9e537d0ae293c-1" name="rest_code_13870153729a49d4bfc9e537d0ae293c-1" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_13870153729a49d4bfc9e537d0ae293c-1"&gt;&lt;/a&gt;&lt;span class="nv"&gt;GMapType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;state_gmap&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;state_lwwregister&lt;/span&gt;&lt;span class="p"&gt;]}.&lt;/span&gt;
&lt;a id="rest_code_13870153729a49d4bfc9e537d0ae293c-2" name="rest_code_13870153729a49d4bfc9e537d0ae293c-2" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_13870153729a49d4bfc9e537d0ae293c-2"&gt;&lt;/a&gt;&lt;span class="nv"&gt;GMapVarName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s"&gt;"gmap"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_13870153729a49d4bfc9e537d0ae293c-3" name="rest_code_13870153729a49d4bfc9e537d0ae293c-3" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_13870153729a49d4bfc9e537d0ae293c-3"&gt;&lt;/a&gt;&lt;span class="nv"&gt;GMapVal&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;what&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;i_am_a_gmap_value&lt;/span&gt;&lt;span class="p"&gt;}.&lt;/span&gt;
&lt;a id="rest_code_13870153729a49d4bfc9e537d0ae293c-4" name="rest_code_13870153729a49d4bfc9e537d0ae293c-4" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_13870153729a49d4bfc9e537d0ae293c-4"&gt;&lt;/a&gt;
&lt;a id="rest_code_13870153729a49d4bfc9e537d0ae293c-5" name="rest_code_13870153729a49d4bfc9e537d0ae293c-5" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_13870153729a49d4bfc9e537d0ae293c-5"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;GMap&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;declare&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="nv"&gt;GMapVarName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GMapType&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GMapType&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_13870153729a49d4bfc9e537d0ae293c-6" name="rest_code_13870153729a49d4bfc9e537d0ae293c-6" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_13870153729a49d4bfc9e537d0ae293c-6"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;GMap1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;GMap&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nb"&gt;apply&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Key1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;a id="rest_code_13870153729a49d4bfc9e537d0ae293c-7" name="rest_code_13870153729a49d4bfc9e537d0ae293c-7" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_13870153729a49d4bfc9e537d0ae293c-7"&gt;&lt;/a&gt;&lt;span class="w"&gt;                                            &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;set&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Timestamp&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GMapVal&lt;/span&gt;&lt;span class="p"&gt;}},&lt;/span&gt;
&lt;a id="rest_code_13870153729a49d4bfc9e537d0ae293c-8" name="rest_code_13870153729a49d4bfc9e537d0ae293c-8" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_13870153729a49d4bfc9e537d0ae293c-8"&gt;&lt;/a&gt;&lt;span class="w"&gt;                                            &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_13870153729a49d4bfc9e537d0ae293c-9" name="rest_code_13870153729a49d4bfc9e537d0ae293c-9" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_13870153729a49d4bfc9e537d0ae293c-9"&gt;&lt;/a&gt;
&lt;a id="rest_code_13870153729a49d4bfc9e537d0ae293c-10" name="rest_code_13870153729a49d4bfc9e537d0ae293c-10" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_13870153729a49d4bfc9e537d0ae293c-10"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GMapRes&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;GMap1&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_13870153729a49d4bfc9e537d0ae293c-11" name="rest_code_13870153729a49d4bfc9e537d0ae293c-11" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_13870153729a49d4bfc9e537d0ae293c-11"&gt;&lt;/a&gt;
&lt;a id="rest_code_13870153729a49d4bfc9e537d0ae293c-12" name="rest_code_13870153729a49d4bfc9e537d0ae293c-12" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_13870153729a49d4bfc9e537d0ae293c-12"&gt;&lt;/a&gt;&lt;span class="nv"&gt;GMapRes&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_13870153729a49d4bfc9e537d0ae293c-13" name="rest_code_13870153729a49d4bfc9e537d0ae293c-13" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_13870153729a49d4bfc9e537d0ae293c-13"&gt;&lt;/a&gt;&lt;span class="c"&gt;% [{&amp;lt;&amp;lt;"key1"&amp;gt;&amp;gt;,#{thing =&amp;gt; 42,what =&amp;gt; i_am_a_gmap_value}}]&lt;/span&gt;
&lt;a id="rest_code_13870153729a49d4bfc9e537d0ae293c-14" name="rest_code_13870153729a49d4bfc9e537d0ae293c-14" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_13870153729a49d4bfc9e537d0ae293c-14"&gt;&lt;/a&gt;
&lt;a id="rest_code_13870153729a49d4bfc9e537d0ae293c-15" name="rest_code_13870153729a49d4bfc9e537d0ae293c-15" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_13870153729a49d4bfc9e537d0ae293c-15"&gt;&lt;/a&gt;&lt;span class="p"&gt;[{_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GMapResVal&lt;/span&gt;&lt;span class="p"&gt;}]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GMapRes&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_13870153729a49d4bfc9e537d0ae293c-16" name="rest_code_13870153729a49d4bfc9e537d0ae293c-16" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_13870153729a49d4bfc9e537d0ae293c-16"&gt;&lt;/a&gt;
&lt;a id="rest_code_13870153729a49d4bfc9e537d0ae293c-17" name="rest_code_13870153729a49d4bfc9e537d0ae293c-17" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_13870153729a49d4bfc9e537d0ae293c-17"&gt;&lt;/a&gt;&lt;span class="nv"&gt;GMapResVal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_13870153729a49d4bfc9e537d0ae293c-18" name="rest_code_13870153729a49d4bfc9e537d0ae293c-18" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_13870153729a49d4bfc9e537d0ae293c-18"&gt;&lt;/a&gt;&lt;span class="c"&gt;% #{what =&amp;gt; i_am_a_gmap_value}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;We can use a gmap with an ivar as value type, an ivar is a register that can
only be set once.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code erlang"&gt;&lt;a id="rest_code_bb24365b5cd34f408a91ac0e7e750e51-1" name="rest_code_bb24365b5cd34f408a91ac0e7e750e51-1" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_bb24365b5cd34f408a91ac0e7e750e51-1"&gt;&lt;/a&gt;&lt;span class="nv"&gt;GMapIVarType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;state_gmap&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;state_ivar&lt;/span&gt;&lt;span class="p"&gt;]}.&lt;/span&gt;
&lt;a id="rest_code_bb24365b5cd34f408a91ac0e7e750e51-2" name="rest_code_bb24365b5cd34f408a91ac0e7e750e51-2" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_bb24365b5cd34f408a91ac0e7e750e51-2"&gt;&lt;/a&gt;&lt;span class="nv"&gt;GMapIVarVarName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s"&gt;"gmapivar"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_bb24365b5cd34f408a91ac0e7e750e51-3" name="rest_code_bb24365b5cd34f408a91ac0e7e750e51-3" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_bb24365b5cd34f408a91ac0e7e750e51-3"&gt;&lt;/a&gt;&lt;span class="nv"&gt;GMapIVarVal1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;what&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;i_am_a_gmap_ivar_value&lt;/span&gt;&lt;span class="p"&gt;}.&lt;/span&gt;
&lt;a id="rest_code_bb24365b5cd34f408a91ac0e7e750e51-4" name="rest_code_bb24365b5cd34f408a91ac0e7e750e51-4" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_bb24365b5cd34f408a91ac0e7e750e51-4"&gt;&lt;/a&gt;&lt;span class="nv"&gt;GMapIVarVal2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;what&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;i_am_a_gmap_ivar_update&lt;/span&gt;&lt;span class="p"&gt;}.&lt;/span&gt;
&lt;a id="rest_code_bb24365b5cd34f408a91ac0e7e750e51-5" name="rest_code_bb24365b5cd34f408a91ac0e7e750e51-5" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_bb24365b5cd34f408a91ac0e7e750e51-5"&gt;&lt;/a&gt;
&lt;a id="rest_code_bb24365b5cd34f408a91ac0e7e750e51-6" name="rest_code_bb24365b5cd34f408a91ac0e7e750e51-6" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_bb24365b5cd34f408a91ac0e7e750e51-6"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;GMapIVar&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;declare&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="nv"&gt;GMapIVarVarName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GMapIVarType&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GMapIVarType&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_bb24365b5cd34f408a91ac0e7e750e51-7" name="rest_code_bb24365b5cd34f408a91ac0e7e750e51-7" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_bb24365b5cd34f408a91ac0e7e750e51-7"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;GMapIVar1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;GMapIVar&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nb"&gt;apply&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Key1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;a id="rest_code_bb24365b5cd34f408a91ac0e7e750e51-8" name="rest_code_bb24365b5cd34f408a91ac0e7e750e51-8" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_bb24365b5cd34f408a91ac0e7e750e51-8"&gt;&lt;/a&gt;&lt;span class="w"&gt;                                            &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;set&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GMapIVarVal1&lt;/span&gt;&lt;span class="p"&gt;}},&lt;/span&gt;
&lt;a id="rest_code_bb24365b5cd34f408a91ac0e7e750e51-9" name="rest_code_bb24365b5cd34f408a91ac0e7e750e51-9" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_bb24365b5cd34f408a91ac0e7e750e51-9"&gt;&lt;/a&gt;&lt;span class="w"&gt;                                            &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_bb24365b5cd34f408a91ac0e7e750e51-10" name="rest_code_bb24365b5cd34f408a91ac0e7e750e51-10" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_bb24365b5cd34f408a91ac0e7e750e51-10"&gt;&lt;/a&gt;&lt;span class="c"&gt;% try updating it, will throw an error (the value of GMapIVar1 will be lost)&lt;/span&gt;
&lt;a id="rest_code_bb24365b5cd34f408a91ac0e7e750e51-11" name="rest_code_bb24365b5cd34f408a91ac0e7e750e51-11" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_bb24365b5cd34f408a91ac0e7e750e51-11"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;GMapIVar2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;GMapIVar1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nb"&gt;apply&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Key1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;a id="rest_code_bb24365b5cd34f408a91ac0e7e750e51-12" name="rest_code_bb24365b5cd34f408a91ac0e7e750e51-12" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_bb24365b5cd34f408a91ac0e7e750e51-12"&gt;&lt;/a&gt;&lt;span class="w"&gt;                                            &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;set&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GMapIVarVal2&lt;/span&gt;&lt;span class="p"&gt;}},&lt;/span&gt;
&lt;a id="rest_code_bb24365b5cd34f408a91ac0e7e750e51-13" name="rest_code_bb24365b5cd34f408a91ac0e7e750e51-13" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_bb24365b5cd34f408a91ac0e7e750e51-13"&gt;&lt;/a&gt;&lt;span class="w"&gt;                                            &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_bb24365b5cd34f408a91ac0e7e750e51-14" name="rest_code_bb24365b5cd34f408a91ac0e7e750e51-14" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_bb24365b5cd34f408a91ac0e7e750e51-14"&gt;&lt;/a&gt;
&lt;a id="rest_code_bb24365b5cd34f408a91ac0e7e750e51-15" name="rest_code_bb24365b5cd34f408a91ac0e7e750e51-15" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_bb24365b5cd34f408a91ac0e7e750e51-15"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GMapIVarRes&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;GMapIVar1&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_bb24365b5cd34f408a91ac0e7e750e51-16" name="rest_code_bb24365b5cd34f408a91ac0e7e750e51-16" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_bb24365b5cd34f408a91ac0e7e750e51-16"&gt;&lt;/a&gt;
&lt;a id="rest_code_bb24365b5cd34f408a91ac0e7e750e51-17" name="rest_code_bb24365b5cd34f408a91ac0e7e750e51-17" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_bb24365b5cd34f408a91ac0e7e750e51-17"&gt;&lt;/a&gt;&lt;span class="nv"&gt;GMapIVarRes&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_bb24365b5cd34f408a91ac0e7e750e51-18" name="rest_code_bb24365b5cd34f408a91ac0e7e750e51-18" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_bb24365b5cd34f408a91ac0e7e750e51-18"&gt;&lt;/a&gt;
&lt;a id="rest_code_bb24365b5cd34f408a91ac0e7e750e51-19" name="rest_code_bb24365b5cd34f408a91ac0e7e750e51-19" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_bb24365b5cd34f408a91ac0e7e750e51-19"&gt;&lt;/a&gt;&lt;span class="p"&gt;[{_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GMapIVarResVal&lt;/span&gt;&lt;span class="p"&gt;}]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GMapIVarRes&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_bb24365b5cd34f408a91ac0e7e750e51-20" name="rest_code_bb24365b5cd34f408a91ac0e7e750e51-20" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_bb24365b5cd34f408a91ac0e7e750e51-20"&gt;&lt;/a&gt;
&lt;a id="rest_code_bb24365b5cd34f408a91ac0e7e750e51-21" name="rest_code_bb24365b5cd34f408a91ac0e7e750e51-21" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_bb24365b5cd34f408a91ac0e7e750e51-21"&gt;&lt;/a&gt;&lt;span class="nv"&gt;GMapIVarResVal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_bb24365b5cd34f408a91ac0e7e750e51-22" name="rest_code_bb24365b5cd34f408a91ac0e7e750e51-22" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_bb24365b5cd34f408a91ac0e7e750e51-22"&gt;&lt;/a&gt;&lt;span class="c"&gt;% #{what =&amp;gt; i_am_a_gmap_ivar_value}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/section&gt;
&lt;section id="types"&gt;
&lt;h2&gt;Types&lt;/h2&gt;
&lt;p&gt;My examples are all maps with some value type because that's the use case I'm
most interested, here's a list of types and their operations:&lt;/p&gt;
&lt;section id="scalars"&gt;
&lt;h3&gt;"Scalars"&lt;/h3&gt;
&lt;p&gt;&lt;a class="reference external" href="https://github.com/lasp-lang/types/blob/master/src/state_boolean.erl"&gt;boolean&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Operations:&lt;/p&gt;
&lt;dl class="simple"&gt;
&lt;dt&gt;&lt;cite&gt;true&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Can be set to true once&lt;/p&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code erlang"&gt;&lt;a id="rest_code_6075e23604d944648d11ddcf3ffe7cbf-1" name="rest_code_6075e23604d944648d11ddcf3ffe7cbf-1" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6075e23604d944648d11ddcf3ffe7cbf-1"&gt;&lt;/a&gt;&lt;span class="nv"&gt;BoolType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;state_boolean&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_6075e23604d944648d11ddcf3ffe7cbf-2" name="rest_code_6075e23604d944648d11ddcf3ffe7cbf-2" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6075e23604d944648d11ddcf3ffe7cbf-2"&gt;&lt;/a&gt;&lt;span class="nv"&gt;BoolVarName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s"&gt;"boolvar"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_6075e23604d944648d11ddcf3ffe7cbf-3" name="rest_code_6075e23604d944648d11ddcf3ffe7cbf-3" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6075e23604d944648d11ddcf3ffe7cbf-3"&gt;&lt;/a&gt;
&lt;a id="rest_code_6075e23604d944648d11ddcf3ffe7cbf-4" name="rest_code_6075e23604d944648d11ddcf3ffe7cbf-4" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6075e23604d944648d11ddcf3ffe7cbf-4"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;Bool&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;declare&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="nv"&gt;BoolVarName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;BoolType&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;BoolType&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_6075e23604d944648d11ddcf3ffe7cbf-5" name="rest_code_6075e23604d944648d11ddcf3ffe7cbf-5" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6075e23604d944648d11ddcf3ffe7cbf-5"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;Bool1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;Bool&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_6075e23604d944648d11ddcf3ffe7cbf-6" name="rest_code_6075e23604d944648d11ddcf3ffe7cbf-6" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6075e23604d944648d11ddcf3ffe7cbf-6"&gt;&lt;/a&gt;
&lt;a id="rest_code_6075e23604d944648d11ddcf3ffe7cbf-7" name="rest_code_6075e23604d944648d11ddcf3ffe7cbf-7" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6075e23604d944648d11ddcf3ffe7cbf-7"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;BoolRes&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;Bool1&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_6075e23604d944648d11ddcf3ffe7cbf-8" name="rest_code_6075e23604d944648d11ddcf3ffe7cbf-8" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6075e23604d944648d11ddcf3ffe7cbf-8"&gt;&lt;/a&gt;
&lt;a id="rest_code_6075e23604d944648d11ddcf3ffe7cbf-9" name="rest_code_6075e23604d944648d11ddcf3ffe7cbf-9" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6075e23604d944648d11ddcf3ffe7cbf-9"&gt;&lt;/a&gt;&lt;span class="nv"&gt;BoolRes&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_6075e23604d944648d11ddcf3ffe7cbf-10" name="rest_code_6075e23604d944648d11ddcf3ffe7cbf-10" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6075e23604d944648d11ddcf3ffe7cbf-10"&gt;&lt;/a&gt;&lt;span class="c"&gt;% true&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a class="reference external" href="https://github.com/lasp-lang/types/blob/master/src/state_ewflag.erl"&gt;ewflag&lt;/a&gt;:&lt;/p&gt;
&lt;pre class="literal-block"&gt;Enable-Wins Flag CRDT&lt;/pre&gt;
&lt;p&gt;Operations:&lt;/p&gt;
&lt;dl class="simple"&gt;
&lt;dt&gt;&lt;cite&gt;enable&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Enable the flag&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;cite&gt;disable&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Disable the flag&lt;/p&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code erlang"&gt;&lt;a id="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-1" name="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-1" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-1"&gt;&lt;/a&gt;&lt;span class="nv"&gt;EWType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;state_ewflag&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-2" name="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-2" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-2"&gt;&lt;/a&gt;&lt;span class="nv"&gt;EWVarName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s"&gt;"ewvar"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-3" name="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-3" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-3"&gt;&lt;/a&gt;
&lt;a id="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-4" name="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-4" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-4"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;EW&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;declare&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="nv"&gt;EWVarName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;EWType&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;EWType&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-5" name="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-5" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-5"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;EW1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;EW&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;enable&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-6" name="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-6" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-6"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;EWRes1&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;EW1&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-7" name="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-7" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-7"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;EW2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;EW1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;disable&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-8" name="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-8" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-8"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;EWRes2&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;EW2&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-9" name="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-9" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-9"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;EW3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;EW2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;enable&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-10" name="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-10" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-10"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;EWRes3&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;EW3&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-11" name="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-11" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-11"&gt;&lt;/a&gt;
&lt;a id="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-12" name="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-12" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-12"&gt;&lt;/a&gt;&lt;span class="nv"&gt;EWRes1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-13" name="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-13" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-13"&gt;&lt;/a&gt;&lt;span class="c"&gt;% true&lt;/span&gt;
&lt;a id="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-14" name="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-14" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-14"&gt;&lt;/a&gt;&lt;span class="nv"&gt;EWRes2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-15" name="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-15" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-15"&gt;&lt;/a&gt;&lt;span class="c"&gt;% false&lt;/span&gt;
&lt;a id="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-16" name="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-16" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-16"&gt;&lt;/a&gt;&lt;span class="nv"&gt;EWRes3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-17" name="rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-17" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3b07d9c6bc4d421dab6d4f3ecf570d25-17"&gt;&lt;/a&gt;&lt;span class="c"&gt;% true&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a class="reference external" href="https://github.com/lasp-lang/types/blob/master/src/state_dwflag.erl"&gt;dwflag&lt;/a&gt;:&lt;/p&gt;
&lt;pre class="literal-block"&gt;Disable-Wins Flag CRDT

Follows the same strategy used in Enable-Wins Flag but,
instead of creating a new dot when enabling the flag,
we create a new dot when disabling it.&lt;/pre&gt;
&lt;p&gt;Operations:&lt;/p&gt;
&lt;dl class="simple"&gt;
&lt;dt&gt;&lt;cite&gt;enable&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Enable the flag&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;cite&gt;disable&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Disable the flag&lt;/p&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code erlang"&gt;&lt;a id="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-1" name="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-1" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-1"&gt;&lt;/a&gt;&lt;span class="nv"&gt;DWType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;state_dwflag&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-2" name="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-2" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-2"&gt;&lt;/a&gt;&lt;span class="nv"&gt;DWVarName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s"&gt;"dwvar"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-3" name="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-3" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-3"&gt;&lt;/a&gt;
&lt;a id="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-4" name="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-4" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-4"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;DW&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;declare&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="nv"&gt;DWVarName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;DWType&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;DWType&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-5" name="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-5" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-5"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;DW1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;DW&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;enable&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-6" name="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-6" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-6"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;DWRes1&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;DW1&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-7" name="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-7" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-7"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;DW2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;DW1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;disable&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-8" name="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-8" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-8"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;DWRes2&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;DW2&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-9" name="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-9" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-9"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;DW3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;DW2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;enable&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-10" name="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-10" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-10"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;DWRes3&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;DW3&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-11" name="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-11" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-11"&gt;&lt;/a&gt;
&lt;a id="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-12" name="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-12" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-12"&gt;&lt;/a&gt;&lt;span class="nv"&gt;DWRes1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-13" name="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-13" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-13"&gt;&lt;/a&gt;&lt;span class="c"&gt;% true&lt;/span&gt;
&lt;a id="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-14" name="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-14" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-14"&gt;&lt;/a&gt;&lt;span class="nv"&gt;DWRes2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-15" name="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-15" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-15"&gt;&lt;/a&gt;&lt;span class="c"&gt;% false&lt;/span&gt;
&lt;a id="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-16" name="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-16" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-16"&gt;&lt;/a&gt;&lt;span class="nv"&gt;DWRes3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-17" name="rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-17" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_61a419b1e6ec4034a6d01fdf5d14ce29-17"&gt;&lt;/a&gt;&lt;span class="c"&gt;% true&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a class="reference external" href="https://github.com/lasp-lang/types/blob/master/src/state_gcounter.erl"&gt;GCounter CRDT: grow only counter&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Operations:&lt;/p&gt;
&lt;dl class="simple"&gt;
&lt;dt&gt;&lt;cite&gt;increment&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Increment the counter by 1&lt;/p&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code erlang"&gt;&lt;a id="rest_code_0e8e8c4a6107449ba070503c5c35a598-1" name="rest_code_0e8e8c4a6107449ba070503c5c35a598-1" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0e8e8c4a6107449ba070503c5c35a598-1"&gt;&lt;/a&gt;&lt;span class="nv"&gt;GCountType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;state_gcounter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_0e8e8c4a6107449ba070503c5c35a598-2" name="rest_code_0e8e8c4a6107449ba070503c5c35a598-2" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0e8e8c4a6107449ba070503c5c35a598-2"&gt;&lt;/a&gt;&lt;span class="nv"&gt;GCountVarName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s"&gt;"gcountvar"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_0e8e8c4a6107449ba070503c5c35a598-3" name="rest_code_0e8e8c4a6107449ba070503c5c35a598-3" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0e8e8c4a6107449ba070503c5c35a598-3"&gt;&lt;/a&gt;
&lt;a id="rest_code_0e8e8c4a6107449ba070503c5c35a598-4" name="rest_code_0e8e8c4a6107449ba070503c5c35a598-4" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0e8e8c4a6107449ba070503c5c35a598-4"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;GCount&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;declare&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="nv"&gt;GCountVarName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GCountType&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GCountType&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_0e8e8c4a6107449ba070503c5c35a598-5" name="rest_code_0e8e8c4a6107449ba070503c5c35a598-5" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0e8e8c4a6107449ba070503c5c35a598-5"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;GCount1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;GCount&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;increment&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_0e8e8c4a6107449ba070503c5c35a598-6" name="rest_code_0e8e8c4a6107449ba070503c5c35a598-6" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0e8e8c4a6107449ba070503c5c35a598-6"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GCountRes1&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;GCount1&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_0e8e8c4a6107449ba070503c5c35a598-7" name="rest_code_0e8e8c4a6107449ba070503c5c35a598-7" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0e8e8c4a6107449ba070503c5c35a598-7"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;GCount2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;GCount1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;increment&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_0e8e8c4a6107449ba070503c5c35a598-8" name="rest_code_0e8e8c4a6107449ba070503c5c35a598-8" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0e8e8c4a6107449ba070503c5c35a598-8"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GCountRes2&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;GCount2&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_0e8e8c4a6107449ba070503c5c35a598-9" name="rest_code_0e8e8c4a6107449ba070503c5c35a598-9" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0e8e8c4a6107449ba070503c5c35a598-9"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;GCount3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;GCount2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;increment&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_0e8e8c4a6107449ba070503c5c35a598-10" name="rest_code_0e8e8c4a6107449ba070503c5c35a598-10" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0e8e8c4a6107449ba070503c5c35a598-10"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GCountRes3&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;GCount3&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_0e8e8c4a6107449ba070503c5c35a598-11" name="rest_code_0e8e8c4a6107449ba070503c5c35a598-11" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0e8e8c4a6107449ba070503c5c35a598-11"&gt;&lt;/a&gt;
&lt;a id="rest_code_0e8e8c4a6107449ba070503c5c35a598-12" name="rest_code_0e8e8c4a6107449ba070503c5c35a598-12" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0e8e8c4a6107449ba070503c5c35a598-12"&gt;&lt;/a&gt;&lt;span class="nv"&gt;GCountRes1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_0e8e8c4a6107449ba070503c5c35a598-13" name="rest_code_0e8e8c4a6107449ba070503c5c35a598-13" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0e8e8c4a6107449ba070503c5c35a598-13"&gt;&lt;/a&gt;&lt;span class="c"&gt;% 1&lt;/span&gt;
&lt;a id="rest_code_0e8e8c4a6107449ba070503c5c35a598-14" name="rest_code_0e8e8c4a6107449ba070503c5c35a598-14" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0e8e8c4a6107449ba070503c5c35a598-14"&gt;&lt;/a&gt;&lt;span class="nv"&gt;GCountRes2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_0e8e8c4a6107449ba070503c5c35a598-15" name="rest_code_0e8e8c4a6107449ba070503c5c35a598-15" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0e8e8c4a6107449ba070503c5c35a598-15"&gt;&lt;/a&gt;&lt;span class="c"&gt;% 2&lt;/span&gt;
&lt;a id="rest_code_0e8e8c4a6107449ba070503c5c35a598-16" name="rest_code_0e8e8c4a6107449ba070503c5c35a598-16" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0e8e8c4a6107449ba070503c5c35a598-16"&gt;&lt;/a&gt;&lt;span class="nv"&gt;GCountRes3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_0e8e8c4a6107449ba070503c5c35a598-17" name="rest_code_0e8e8c4a6107449ba070503c5c35a598-17" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0e8e8c4a6107449ba070503c5c35a598-17"&gt;&lt;/a&gt;&lt;span class="c"&gt;% 3&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Some more I don't get completely what they could be used for:&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://github.com/lasp-lang/types/blob/master/src/state_bcounter.erl"&gt;Bounded Counter CRDT&lt;/a&gt;:&lt;/p&gt;
&lt;pre class="literal-block"&gt;Modeled as a pair where the first component is a PNCounter and the second
component is a GMap.&lt;/pre&gt;
&lt;p&gt;This counter has sub counter for different ids (actors), each of which can't go
below 0, with this you can model things like seats or some resource where you
allocate counts to different parties (actors) and each can decrement their own
count but not others, also each counter can't go below 0, if a given actor
needs to decrement it has to move counts from other actor.&lt;/p&gt;
&lt;p&gt;Operations:&lt;/p&gt;
&lt;dl class="simple"&gt;
&lt;dt&gt;&lt;cite&gt;{move, term()}&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Moves permissions to decrement to another replica (if it has enough permissions)&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;cite&gt;increment&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Increment counter, can always happen&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;cite&gt;decrement&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Decrement counter, can happen when the replica has enough local increments,
or has permissions received from other replicas&lt;/p&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code erlang"&gt;&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-1" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-1" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-1"&gt;&lt;/a&gt;&lt;span class="nv"&gt;BCountType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;state_bcounter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-2" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-2" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-2"&gt;&lt;/a&gt;&lt;span class="nv"&gt;BCountVarName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s"&gt;"bcountvar"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-3" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-3" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-3"&gt;&lt;/a&gt;&lt;span class="nv"&gt;Actor1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-4" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-4" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-4"&gt;&lt;/a&gt;&lt;span class="nv"&gt;Actor2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s"&gt;"actor2-id"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-5" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-5" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-5"&gt;&lt;/a&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-6" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-6" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-6"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;BCount&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;declare&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="nv"&gt;BCountVarName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;BCountType&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;BCountType&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-7" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-7" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-7"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;BCount1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;BCount&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;increment&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Actor1&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-8" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-8" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-8"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;BCountRes1&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;BCount1&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-9" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-9" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-9"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;BCount2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;BCount1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;increment&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Actor2&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-10" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-10" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-10"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;BCountRes2&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;BCount2&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-11" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-11" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-11"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;BCount3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;BCount2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;decrement&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Actor1&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-12" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-12" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-12"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;BCountRes3&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;BCount3&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-13" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-13" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-13"&gt;&lt;/a&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-14" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-14" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-14"&gt;&lt;/a&gt;&lt;span class="c"&gt;% here Actor1 has counter set to 0, can't go below 0, if it want's to&lt;/span&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-15" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-15" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-15"&gt;&lt;/a&gt;&lt;span class="c"&gt;% decrement it has to move a 1 from another actor, Actor2 has 1 in its&lt;/span&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-16" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-16" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-16"&gt;&lt;/a&gt;&lt;span class="c"&gt;% counter so we will move it and then decrement&lt;/span&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-17" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-17" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-17"&gt;&lt;/a&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-18" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-18" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-18"&gt;&lt;/a&gt;&lt;span class="nv"&gt;BCountMoveFrom&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Actor2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-19" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-19" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-19"&gt;&lt;/a&gt;&lt;span class="nv"&gt;BCountMoveTo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Actor1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-20" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-20" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-20"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;BCount4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;BCount3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;move&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;BCountMoveTo&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;BCountMoveFrom&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-21" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-21" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-21"&gt;&lt;/a&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-22" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-22" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-22"&gt;&lt;/a&gt;&lt;span class="c"&gt;% now we can decrement from Actor1&lt;/span&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-23" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-23" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-23"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;BCount5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;BCount4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;decrement&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Actor1&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-24" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-24" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-24"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;BCountRes5&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;BCount5&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-25" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-25" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-25"&gt;&lt;/a&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-26" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-26" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-26"&gt;&lt;/a&gt;&lt;span class="nv"&gt;BCountRes1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-27" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-27" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-27"&gt;&lt;/a&gt;&lt;span class="c"&gt;% 1&lt;/span&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-28" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-28" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-28"&gt;&lt;/a&gt;&lt;span class="nv"&gt;BCountRes2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-29" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-29" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-29"&gt;&lt;/a&gt;&lt;span class="c"&gt;% 2&lt;/span&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-30" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-30" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-30"&gt;&lt;/a&gt;&lt;span class="nv"&gt;BCountRes3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-31" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-31" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-31"&gt;&lt;/a&gt;&lt;span class="c"&gt;% 1&lt;/span&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-32" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-32" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-32"&gt;&lt;/a&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-33" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-33" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-33"&gt;&lt;/a&gt;&lt;span class="nv"&gt;BCountRes5&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_0726f52402ce407d835ed5a0768a3d3a-34" name="rest_code_0726f52402ce407d835ed5a0768a3d3a-34" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0726f52402ce407d835ed5a0768a3d3a-34"&gt;&lt;/a&gt;&lt;span class="c"&gt;% 0&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a class="reference external" href="https://github.com/lasp-lang/types/blob/master/src/state_max_int.erl"&gt;Max Int CRDT&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Operations:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;cite&gt;increment&lt;/cite&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code erlang"&gt;&lt;a id="rest_code_9f77516fca79434db58c8240bac13378-1" name="rest_code_9f77516fca79434db58c8240bac13378-1" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_9f77516fca79434db58c8240bac13378-1"&gt;&lt;/a&gt;&lt;span class="nv"&gt;MaxIntType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;state_max_int&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_9f77516fca79434db58c8240bac13378-2" name="rest_code_9f77516fca79434db58c8240bac13378-2" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_9f77516fca79434db58c8240bac13378-2"&gt;&lt;/a&gt;&lt;span class="nv"&gt;MaxIntVarName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s"&gt;"maxintvar"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_9f77516fca79434db58c8240bac13378-3" name="rest_code_9f77516fca79434db58c8240bac13378-3" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_9f77516fca79434db58c8240bac13378-3"&gt;&lt;/a&gt;
&lt;a id="rest_code_9f77516fca79434db58c8240bac13378-4" name="rest_code_9f77516fca79434db58c8240bac13378-4" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_9f77516fca79434db58c8240bac13378-4"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;MaxInt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;declare&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="nv"&gt;MaxIntVarName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;MaxIntType&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;MaxIntType&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_9f77516fca79434db58c8240bac13378-5" name="rest_code_9f77516fca79434db58c8240bac13378-5" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_9f77516fca79434db58c8240bac13378-5"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;MaxInt1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;MaxInt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;increment&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_9f77516fca79434db58c8240bac13378-6" name="rest_code_9f77516fca79434db58c8240bac13378-6" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_9f77516fca79434db58c8240bac13378-6"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;MaxIntRes1&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;MaxInt1&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_9f77516fca79434db58c8240bac13378-7" name="rest_code_9f77516fca79434db58c8240bac13378-7" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_9f77516fca79434db58c8240bac13378-7"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;MaxInt2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;MaxInt1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;increment&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_9f77516fca79434db58c8240bac13378-8" name="rest_code_9f77516fca79434db58c8240bac13378-8" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_9f77516fca79434db58c8240bac13378-8"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;MaxIntRes2&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;MaxInt2&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_9f77516fca79434db58c8240bac13378-9" name="rest_code_9f77516fca79434db58c8240bac13378-9" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_9f77516fca79434db58c8240bac13378-9"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;MaxInt3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;MaxInt2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;increment&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_9f77516fca79434db58c8240bac13378-10" name="rest_code_9f77516fca79434db58c8240bac13378-10" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_9f77516fca79434db58c8240bac13378-10"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;MaxIntRes3&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;MaxInt3&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_9f77516fca79434db58c8240bac13378-11" name="rest_code_9f77516fca79434db58c8240bac13378-11" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_9f77516fca79434db58c8240bac13378-11"&gt;&lt;/a&gt;
&lt;a id="rest_code_9f77516fca79434db58c8240bac13378-12" name="rest_code_9f77516fca79434db58c8240bac13378-12" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_9f77516fca79434db58c8240bac13378-12"&gt;&lt;/a&gt;&lt;span class="nv"&gt;MaxIntRes1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_9f77516fca79434db58c8240bac13378-13" name="rest_code_9f77516fca79434db58c8240bac13378-13" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_9f77516fca79434db58c8240bac13378-13"&gt;&lt;/a&gt;&lt;span class="c"&gt;% 1&lt;/span&gt;
&lt;a id="rest_code_9f77516fca79434db58c8240bac13378-14" name="rest_code_9f77516fca79434db58c8240bac13378-14" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_9f77516fca79434db58c8240bac13378-14"&gt;&lt;/a&gt;&lt;span class="nv"&gt;MaxIntRes2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_9f77516fca79434db58c8240bac13378-15" name="rest_code_9f77516fca79434db58c8240bac13378-15" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_9f77516fca79434db58c8240bac13378-15"&gt;&lt;/a&gt;&lt;span class="c"&gt;% 2&lt;/span&gt;
&lt;a id="rest_code_9f77516fca79434db58c8240bac13378-16" name="rest_code_9f77516fca79434db58c8240bac13378-16" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_9f77516fca79434db58c8240bac13378-16"&gt;&lt;/a&gt;&lt;span class="nv"&gt;MaxIntRes3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_9f77516fca79434db58c8240bac13378-17" name="rest_code_9f77516fca79434db58c8240bac13378-17" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_9f77516fca79434db58c8240bac13378-17"&gt;&lt;/a&gt;&lt;span class="c"&gt;% 3&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a class="reference external" href="https://github.com/lasp-lang/types/blob/master/src/state_lexcounter.erl"&gt;Lexicographic Counter&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Operations:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;cite&gt;increment&lt;/cite&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;cite&gt;decrement&lt;/cite&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code erlang"&gt;&lt;a id="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-1" name="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-1" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_f184c3d7913b4eeb881ff40f6d77eea9-1"&gt;&lt;/a&gt;&lt;span class="nv"&gt;LCountType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;state_lexcounter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-2" name="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-2" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_f184c3d7913b4eeb881ff40f6d77eea9-2"&gt;&lt;/a&gt;&lt;span class="nv"&gt;LCountVarName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s"&gt;"lexcountvar"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-3" name="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-3" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_f184c3d7913b4eeb881ff40f6d77eea9-3"&gt;&lt;/a&gt;
&lt;a id="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-4" name="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-4" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_f184c3d7913b4eeb881ff40f6d77eea9-4"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;LCount&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;declare&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="nv"&gt;LCountVarName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;LCountType&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;LCountType&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-5" name="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-5" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_f184c3d7913b4eeb881ff40f6d77eea9-5"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;LCount1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;LCount&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;increment&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-6" name="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-6" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_f184c3d7913b4eeb881ff40f6d77eea9-6"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;LCountRes1&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;LCount1&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-7" name="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-7" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_f184c3d7913b4eeb881ff40f6d77eea9-7"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;LCount2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;LCount1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;increment&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-8" name="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-8" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_f184c3d7913b4eeb881ff40f6d77eea9-8"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;LCountRes2&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;LCount2&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-9" name="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-9" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_f184c3d7913b4eeb881ff40f6d77eea9-9"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;LCount3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;LCount2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;decrement&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-10" name="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-10" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_f184c3d7913b4eeb881ff40f6d77eea9-10"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;LCountRes3&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;LCount3&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-11" name="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-11" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_f184c3d7913b4eeb881ff40f6d77eea9-11"&gt;&lt;/a&gt;
&lt;a id="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-12" name="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-12" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_f184c3d7913b4eeb881ff40f6d77eea9-12"&gt;&lt;/a&gt;&lt;span class="nv"&gt;LCountRes1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-13" name="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-13" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_f184c3d7913b4eeb881ff40f6d77eea9-13"&gt;&lt;/a&gt;&lt;span class="c"&gt;% 1&lt;/span&gt;
&lt;a id="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-14" name="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-14" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_f184c3d7913b4eeb881ff40f6d77eea9-14"&gt;&lt;/a&gt;&lt;span class="nv"&gt;LCountRes2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-15" name="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-15" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_f184c3d7913b4eeb881ff40f6d77eea9-15"&gt;&lt;/a&gt;&lt;span class="c"&gt;% 2&lt;/span&gt;
&lt;a id="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-16" name="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-16" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_f184c3d7913b4eeb881ff40f6d77eea9-16"&gt;&lt;/a&gt;&lt;span class="nv"&gt;LCountRes3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-17" name="rest_code_f184c3d7913b4eeb881ff40f6d77eea9-17" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_f184c3d7913b4eeb881ff40f6d77eea9-17"&gt;&lt;/a&gt;&lt;span class="c"&gt;% 1&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a class="reference external" href="https://github.com/lasp-lang/types/blob/master/src/state_pncounter.erl"&gt;PNCounter CRDT&lt;/a&gt;:&lt;/p&gt;
&lt;pre class="literal-block"&gt;Counter that allows both increments and decrements.

Modeled as a dictionary where keys are replicas ids and values are pairs
where the first component is the number of increments and the second component
is the number of decrements.

An actor may only update its own entry in the dictionary.

The value of the counter is the sum of all first components minus the sum
of all second components.&lt;/pre&gt;
&lt;p&gt;Operations:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;cite&gt;increment&lt;/cite&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;cite&gt;decrement&lt;/cite&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code erlang"&gt;&lt;a id="rest_code_5071bf6a42d94dc59db957b65b9927e3-1" name="rest_code_5071bf6a42d94dc59db957b65b9927e3-1" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5071bf6a42d94dc59db957b65b9927e3-1"&gt;&lt;/a&gt;&lt;span class="nv"&gt;PNCountType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;state_pncounter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_5071bf6a42d94dc59db957b65b9927e3-2" name="rest_code_5071bf6a42d94dc59db957b65b9927e3-2" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5071bf6a42d94dc59db957b65b9927e3-2"&gt;&lt;/a&gt;&lt;span class="nv"&gt;PNCountVarName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s"&gt;"pncountvar"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_5071bf6a42d94dc59db957b65b9927e3-3" name="rest_code_5071bf6a42d94dc59db957b65b9927e3-3" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5071bf6a42d94dc59db957b65b9927e3-3"&gt;&lt;/a&gt;
&lt;a id="rest_code_5071bf6a42d94dc59db957b65b9927e3-4" name="rest_code_5071bf6a42d94dc59db957b65b9927e3-4" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5071bf6a42d94dc59db957b65b9927e3-4"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;PNCount&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;declare&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="nv"&gt;PNCountVarName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;PNCountType&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;PNCountType&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_5071bf6a42d94dc59db957b65b9927e3-5" name="rest_code_5071bf6a42d94dc59db957b65b9927e3-5" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5071bf6a42d94dc59db957b65b9927e3-5"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;PNCount1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;PNCount&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;increment&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_5071bf6a42d94dc59db957b65b9927e3-6" name="rest_code_5071bf6a42d94dc59db957b65b9927e3-6" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5071bf6a42d94dc59db957b65b9927e3-6"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;PNCountRes1&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;PNCount1&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_5071bf6a42d94dc59db957b65b9927e3-7" name="rest_code_5071bf6a42d94dc59db957b65b9927e3-7" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5071bf6a42d94dc59db957b65b9927e3-7"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;PNCount2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;PNCount1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;increment&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_5071bf6a42d94dc59db957b65b9927e3-8" name="rest_code_5071bf6a42d94dc59db957b65b9927e3-8" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5071bf6a42d94dc59db957b65b9927e3-8"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;PNCountRes2&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;PNCount2&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_5071bf6a42d94dc59db957b65b9927e3-9" name="rest_code_5071bf6a42d94dc59db957b65b9927e3-9" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5071bf6a42d94dc59db957b65b9927e3-9"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;PNCount3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;PNCount2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;decrement&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_5071bf6a42d94dc59db957b65b9927e3-10" name="rest_code_5071bf6a42d94dc59db957b65b9927e3-10" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5071bf6a42d94dc59db957b65b9927e3-10"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;PNCountRes3&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;PNCount3&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_5071bf6a42d94dc59db957b65b9927e3-11" name="rest_code_5071bf6a42d94dc59db957b65b9927e3-11" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5071bf6a42d94dc59db957b65b9927e3-11"&gt;&lt;/a&gt;
&lt;a id="rest_code_5071bf6a42d94dc59db957b65b9927e3-12" name="rest_code_5071bf6a42d94dc59db957b65b9927e3-12" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5071bf6a42d94dc59db957b65b9927e3-12"&gt;&lt;/a&gt;&lt;span class="nv"&gt;PNCountRes1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_5071bf6a42d94dc59db957b65b9927e3-13" name="rest_code_5071bf6a42d94dc59db957b65b9927e3-13" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5071bf6a42d94dc59db957b65b9927e3-13"&gt;&lt;/a&gt;&lt;span class="c"&gt;% 1&lt;/span&gt;
&lt;a id="rest_code_5071bf6a42d94dc59db957b65b9927e3-14" name="rest_code_5071bf6a42d94dc59db957b65b9927e3-14" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5071bf6a42d94dc59db957b65b9927e3-14"&gt;&lt;/a&gt;&lt;span class="nv"&gt;PNCountRes2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_5071bf6a42d94dc59db957b65b9927e3-15" name="rest_code_5071bf6a42d94dc59db957b65b9927e3-15" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5071bf6a42d94dc59db957b65b9927e3-15"&gt;&lt;/a&gt;&lt;span class="c"&gt;% 2&lt;/span&gt;
&lt;a id="rest_code_5071bf6a42d94dc59db957b65b9927e3-16" name="rest_code_5071bf6a42d94dc59db957b65b9927e3-16" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5071bf6a42d94dc59db957b65b9927e3-16"&gt;&lt;/a&gt;&lt;span class="nv"&gt;PNCountRes3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_5071bf6a42d94dc59db957b65b9927e3-17" name="rest_code_5071bf6a42d94dc59db957b65b9927e3-17" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5071bf6a42d94dc59db957b65b9927e3-17"&gt;&lt;/a&gt;&lt;span class="c"&gt;% 1&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/section&gt;
&lt;section id="registers"&gt;
&lt;h3&gt;"Registers"&lt;/h3&gt;
&lt;p&gt;&lt;a class="reference external" href="https://github.com/lasp-lang/types/blob/master/src/state_lwwregister.erl"&gt;LWWRegister&lt;/a&gt;:&lt;/p&gt;
&lt;pre class="literal-block"&gt;We assume timestamp are unique, totally ordered and consistent
with causal order. We use integers as timestamps.
When using this, make sure you provide globally unique timestamps.&lt;/pre&gt;
&lt;p&gt;Operations:&lt;/p&gt;
&lt;dl class="simple"&gt;
&lt;dt&gt;&lt;cite&gt;{set, Timestamp, Value}&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Set register to Value&lt;/p&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code erlang"&gt;&lt;a id="rest_code_d21031a687324bf18b4069b85a74234c-1" name="rest_code_d21031a687324bf18b4069b85a74234c-1" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_d21031a687324bf18b4069b85a74234c-1"&gt;&lt;/a&gt;&lt;span class="nv"&gt;LWWRegType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;state_lwwregister&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_d21031a687324bf18b4069b85a74234c-2" name="rest_code_d21031a687324bf18b4069b85a74234c-2" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_d21031a687324bf18b4069b85a74234c-2"&gt;&lt;/a&gt;&lt;span class="nv"&gt;LWWRegVarName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s"&gt;"lwwregister"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_d21031a687324bf18b4069b85a74234c-3" name="rest_code_d21031a687324bf18b4069b85a74234c-3" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_d21031a687324bf18b4069b85a74234c-3"&gt;&lt;/a&gt;
&lt;a id="rest_code_d21031a687324bf18b4069b85a74234c-4" name="rest_code_d21031a687324bf18b4069b85a74234c-4" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_d21031a687324bf18b4069b85a74234c-4"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;LWWReg&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;declare&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="nv"&gt;LWWRegVarName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;LWWRegType&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;LWWRegType&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_d21031a687324bf18b4069b85a74234c-5" name="rest_code_d21031a687324bf18b4069b85a74234c-5" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_d21031a687324bf18b4069b85a74234c-5"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;LWWReg1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;LWWReg&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;set&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Timestamp&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;foo&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_d21031a687324bf18b4069b85a74234c-6" name="rest_code_d21031a687324bf18b4069b85a74234c-6" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_d21031a687324bf18b4069b85a74234c-6"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;LWWRegRes1&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;LWWReg1&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_d21031a687324bf18b4069b85a74234c-7" name="rest_code_d21031a687324bf18b4069b85a74234c-7" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_d21031a687324bf18b4069b85a74234c-7"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;LWWReg2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;LWWReg1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;set&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Timestamp&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;bar&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_d21031a687324bf18b4069b85a74234c-8" name="rest_code_d21031a687324bf18b4069b85a74234c-8" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_d21031a687324bf18b4069b85a74234c-8"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;LWWRegRes2&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;LWWReg2&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_d21031a687324bf18b4069b85a74234c-9" name="rest_code_d21031a687324bf18b4069b85a74234c-9" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_d21031a687324bf18b4069b85a74234c-9"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;LWWReg3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;LWWReg2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;set&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Timestamp&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;baz&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_d21031a687324bf18b4069b85a74234c-10" name="rest_code_d21031a687324bf18b4069b85a74234c-10" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_d21031a687324bf18b4069b85a74234c-10"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;LWWRegRes3&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;LWWReg3&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_d21031a687324bf18b4069b85a74234c-11" name="rest_code_d21031a687324bf18b4069b85a74234c-11" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_d21031a687324bf18b4069b85a74234c-11"&gt;&lt;/a&gt;
&lt;a id="rest_code_d21031a687324bf18b4069b85a74234c-12" name="rest_code_d21031a687324bf18b4069b85a74234c-12" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_d21031a687324bf18b4069b85a74234c-12"&gt;&lt;/a&gt;&lt;span class="nv"&gt;LWWRegRes1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_d21031a687324bf18b4069b85a74234c-13" name="rest_code_d21031a687324bf18b4069b85a74234c-13" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_d21031a687324bf18b4069b85a74234c-13"&gt;&lt;/a&gt;&lt;span class="c"&gt;% foo&lt;/span&gt;
&lt;a id="rest_code_d21031a687324bf18b4069b85a74234c-14" name="rest_code_d21031a687324bf18b4069b85a74234c-14" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_d21031a687324bf18b4069b85a74234c-14"&gt;&lt;/a&gt;&lt;span class="nv"&gt;LWWRegRes2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_d21031a687324bf18b4069b85a74234c-15" name="rest_code_d21031a687324bf18b4069b85a74234c-15" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_d21031a687324bf18b4069b85a74234c-15"&gt;&lt;/a&gt;&lt;span class="c"&gt;% bar&lt;/span&gt;
&lt;a id="rest_code_d21031a687324bf18b4069b85a74234c-16" name="rest_code_d21031a687324bf18b4069b85a74234c-16" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_d21031a687324bf18b4069b85a74234c-16"&gt;&lt;/a&gt;&lt;span class="nv"&gt;LWWRegRes3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_d21031a687324bf18b4069b85a74234c-17" name="rest_code_d21031a687324bf18b4069b85a74234c-17" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_d21031a687324bf18b4069b85a74234c-17"&gt;&lt;/a&gt;&lt;span class="c"&gt;% baz&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a class="reference external" href="https://github.com/lasp-lang/types/blob/master/src/state_ivar.erl"&gt;IVar&lt;/a&gt;:&lt;/p&gt;
&lt;pre class="literal-block"&gt;Single-assignment variable.
Write once register.&lt;/pre&gt;
&lt;p&gt;Operations:&lt;/p&gt;
&lt;dl class="simple"&gt;
&lt;dt&gt;&lt;cite&gt;{set, Value}&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Set register to Value (only possible once)&lt;/p&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;div class="code"&gt;&lt;pre class="code erlang"&gt;&lt;a id="rest_code_f3bceadb78284b71aba6b174e5b31752-1" name="rest_code_f3bceadb78284b71aba6b174e5b31752-1" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_f3bceadb78284b71aba6b174e5b31752-1"&gt;&lt;/a&gt;&lt;span class="nv"&gt;IVarRegType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;state_ivar&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_f3bceadb78284b71aba6b174e5b31752-2" name="rest_code_f3bceadb78284b71aba6b174e5b31752-2" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_f3bceadb78284b71aba6b174e5b31752-2"&gt;&lt;/a&gt;&lt;span class="nv"&gt;IVarRegVarName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s"&gt;"ivar"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_f3bceadb78284b71aba6b174e5b31752-3" name="rest_code_f3bceadb78284b71aba6b174e5b31752-3" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_f3bceadb78284b71aba6b174e5b31752-3"&gt;&lt;/a&gt;
&lt;a id="rest_code_f3bceadb78284b71aba6b174e5b31752-4" name="rest_code_f3bceadb78284b71aba6b174e5b31752-4" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_f3bceadb78284b71aba6b174e5b31752-4"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;IVarReg&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;declare&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="nv"&gt;IVarRegVarName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;IVarRegType&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;IVarRegType&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_f3bceadb78284b71aba6b174e5b31752-5" name="rest_code_f3bceadb78284b71aba6b174e5b31752-5" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_f3bceadb78284b71aba6b174e5b31752-5"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;IVarReg1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;IVarReg&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;set&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;foo&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_f3bceadb78284b71aba6b174e5b31752-6" name="rest_code_f3bceadb78284b71aba6b174e5b31752-6" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_f3bceadb78284b71aba6b174e5b31752-6"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;IVarRegRes1&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;IVarReg1&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_f3bceadb78284b71aba6b174e5b31752-7" name="rest_code_f3bceadb78284b71aba6b174e5b31752-7" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_f3bceadb78284b71aba6b174e5b31752-7"&gt;&lt;/a&gt;
&lt;a id="rest_code_f3bceadb78284b71aba6b174e5b31752-8" name="rest_code_f3bceadb78284b71aba6b174e5b31752-8" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_f3bceadb78284b71aba6b174e5b31752-8"&gt;&lt;/a&gt;&lt;span class="nv"&gt;IVarRegRes1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_f3bceadb78284b71aba6b174e5b31752-9" name="rest_code_f3bceadb78284b71aba6b174e5b31752-9" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_f3bceadb78284b71aba6b174e5b31752-9"&gt;&lt;/a&gt;&lt;span class="c"&gt;% foo&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a class="reference external" href="https://github.com/lasp-lang/types/blob/master/src/state_mvregister.erl"&gt;MVRegister&lt;/a&gt;:&lt;/p&gt;
&lt;pre class="literal-block"&gt;Multi-Value Register CRDT.&lt;/pre&gt;
&lt;p&gt;Operations:&lt;/p&gt;
&lt;dl class="simple"&gt;
&lt;dt&gt;&lt;cite&gt;{set, Timestamp, Value}&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;the Timestamp will not be used.
in order to have an unified API for all registers (since LWWRegister needs
to receive a timestamp), the timestamp is also supplied here&lt;/p&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code erlang"&gt;&lt;a id="rest_code_b1a0b5e5f692432eaadd593581398701-1" name="rest_code_b1a0b5e5f692432eaadd593581398701-1" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_b1a0b5e5f692432eaadd593581398701-1"&gt;&lt;/a&gt;&lt;span class="nv"&gt;MVRegType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;state_mvregister&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_b1a0b5e5f692432eaadd593581398701-2" name="rest_code_b1a0b5e5f692432eaadd593581398701-2" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_b1a0b5e5f692432eaadd593581398701-2"&gt;&lt;/a&gt;&lt;span class="nv"&gt;MVRegVarName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s"&gt;"mvregister"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_b1a0b5e5f692432eaadd593581398701-3" name="rest_code_b1a0b5e5f692432eaadd593581398701-3" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_b1a0b5e5f692432eaadd593581398701-3"&gt;&lt;/a&gt;
&lt;a id="rest_code_b1a0b5e5f692432eaadd593581398701-4" name="rest_code_b1a0b5e5f692432eaadd593581398701-4" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_b1a0b5e5f692432eaadd593581398701-4"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;MVReg&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;declare&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="nv"&gt;MVRegVarName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;MVRegType&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;MVRegType&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_b1a0b5e5f692432eaadd593581398701-5" name="rest_code_b1a0b5e5f692432eaadd593581398701-5" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_b1a0b5e5f692432eaadd593581398701-5"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;MVReg1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;MVReg&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;set&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Timestamp&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;foo&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_b1a0b5e5f692432eaadd593581398701-6" name="rest_code_b1a0b5e5f692432eaadd593581398701-6" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_b1a0b5e5f692432eaadd593581398701-6"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;MVRegRes1&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;MVReg1&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_b1a0b5e5f692432eaadd593581398701-7" name="rest_code_b1a0b5e5f692432eaadd593581398701-7" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_b1a0b5e5f692432eaadd593581398701-7"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;MVReg2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;MVReg1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;set&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;nil&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;bar&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_b1a0b5e5f692432eaadd593581398701-8" name="rest_code_b1a0b5e5f692432eaadd593581398701-8" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_b1a0b5e5f692432eaadd593581398701-8"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;MVRegRes2&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;MVReg2&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_b1a0b5e5f692432eaadd593581398701-9" name="rest_code_b1a0b5e5f692432eaadd593581398701-9" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_b1a0b5e5f692432eaadd593581398701-9"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;MVReg3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;MVReg2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;set&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Timestamp&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;baz&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_b1a0b5e5f692432eaadd593581398701-10" name="rest_code_b1a0b5e5f692432eaadd593581398701-10" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_b1a0b5e5f692432eaadd593581398701-10"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;MVRegRes3&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;MVReg3&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_b1a0b5e5f692432eaadd593581398701-11" name="rest_code_b1a0b5e5f692432eaadd593581398701-11" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_b1a0b5e5f692432eaadd593581398701-11"&gt;&lt;/a&gt;
&lt;a id="rest_code_b1a0b5e5f692432eaadd593581398701-12" name="rest_code_b1a0b5e5f692432eaadd593581398701-12" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_b1a0b5e5f692432eaadd593581398701-12"&gt;&lt;/a&gt;&lt;span class="nn"&gt;sets&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;to_list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;MVRegRes1&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_b1a0b5e5f692432eaadd593581398701-13" name="rest_code_b1a0b5e5f692432eaadd593581398701-13" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_b1a0b5e5f692432eaadd593581398701-13"&gt;&lt;/a&gt;&lt;span class="c"&gt;% [foo]&lt;/span&gt;
&lt;a id="rest_code_b1a0b5e5f692432eaadd593581398701-14" name="rest_code_b1a0b5e5f692432eaadd593581398701-14" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_b1a0b5e5f692432eaadd593581398701-14"&gt;&lt;/a&gt;&lt;span class="nn"&gt;sets&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;to_list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;MVRegRes2&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_b1a0b5e5f692432eaadd593581398701-15" name="rest_code_b1a0b5e5f692432eaadd593581398701-15" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_b1a0b5e5f692432eaadd593581398701-15"&gt;&lt;/a&gt;&lt;span class="c"&gt;% [bar]&lt;/span&gt;
&lt;a id="rest_code_b1a0b5e5f692432eaadd593581398701-16" name="rest_code_b1a0b5e5f692432eaadd593581398701-16" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_b1a0b5e5f692432eaadd593581398701-16"&gt;&lt;/a&gt;&lt;span class="nn"&gt;sets&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;to_list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;MVRegRes3&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_b1a0b5e5f692432eaadd593581398701-17" name="rest_code_b1a0b5e5f692432eaadd593581398701-17" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_b1a0b5e5f692432eaadd593581398701-17"&gt;&lt;/a&gt;&lt;span class="c"&gt;% [baz]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/section&gt;
&lt;section id="collections"&gt;
&lt;h3&gt;Collections&lt;/h3&gt;
&lt;p&gt;&lt;a class="reference external" href="https://github.com/lasp-lang/types/blob/master/src/state_awmap.erl"&gt;AWMap CRDT&lt;/a&gt;:&lt;/p&gt;
&lt;pre class="literal-block"&gt;Modeled as a dictionary where keys can be anything and the values are
causal-CRDTs.&lt;/pre&gt;
&lt;p&gt;Operations:&lt;/p&gt;
&lt;dl class="simple"&gt;
&lt;dt&gt;&lt;cite&gt;{apply, Key, Op}&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Update Key with operation Op (since value is a type, you have to supply an
operation, for example if it's a register it may be &lt;em&gt;set&lt;/em&gt;, if it's a
counter it could be &lt;em&gt;increment&lt;/em&gt;).&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;cite&gt;{rmv, Key}&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Remove Key&lt;/p&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code erlang"&gt;&lt;a id="rest_code_6c265355da6b4465acb892b6c8d55849-1" name="rest_code_6c265355da6b4465acb892b6c8d55849-1" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6c265355da6b4465acb892b6c8d55849-1"&gt;&lt;/a&gt;&lt;span class="nv"&gt;AwMapType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;state_awmap&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;state_mvregister&lt;/span&gt;&lt;span class="p"&gt;]}.&lt;/span&gt;
&lt;a id="rest_code_6c265355da6b4465acb892b6c8d55849-2" name="rest_code_6c265355da6b4465acb892b6c8d55849-2" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6c265355da6b4465acb892b6c8d55849-2"&gt;&lt;/a&gt;&lt;span class="nv"&gt;AwMapVarName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s"&gt;"awmap"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_6c265355da6b4465acb892b6c8d55849-3" name="rest_code_6c265355da6b4465acb892b6c8d55849-3" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6c265355da6b4465acb892b6c8d55849-3"&gt;&lt;/a&gt;&lt;span class="nv"&gt;AwMapVal1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;foo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_6c265355da6b4465acb892b6c8d55849-4" name="rest_code_6c265355da6b4465acb892b6c8d55849-4" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6c265355da6b4465acb892b6c8d55849-4"&gt;&lt;/a&gt;&lt;span class="nv"&gt;AwMapVal2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;bar&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_6c265355da6b4465acb892b6c8d55849-5" name="rest_code_6c265355da6b4465acb892b6c8d55849-5" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6c265355da6b4465acb892b6c8d55849-5"&gt;&lt;/a&gt;
&lt;a id="rest_code_6c265355da6b4465acb892b6c8d55849-6" name="rest_code_6c265355da6b4465acb892b6c8d55849-6" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6c265355da6b4465acb892b6c8d55849-6"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;AwMap&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;declare&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="nv"&gt;AwMapVarName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AwMapType&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AwMapType&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_6c265355da6b4465acb892b6c8d55849-7" name="rest_code_6c265355da6b4465acb892b6c8d55849-7" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6c265355da6b4465acb892b6c8d55849-7"&gt;&lt;/a&gt;
&lt;a id="rest_code_6c265355da6b4465acb892b6c8d55849-8" name="rest_code_6c265355da6b4465acb892b6c8d55849-8" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6c265355da6b4465acb892b6c8d55849-8"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;AwMap1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AwMap&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nb"&gt;apply&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Key1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;a id="rest_code_6c265355da6b4465acb892b6c8d55849-9" name="rest_code_6c265355da6b4465acb892b6c8d55849-9" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6c265355da6b4465acb892b6c8d55849-9"&gt;&lt;/a&gt;&lt;span class="w"&gt;                                              &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;set&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Timestamp&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AwMapVal1&lt;/span&gt;&lt;span class="p"&gt;}},&lt;/span&gt;
&lt;a id="rest_code_6c265355da6b4465acb892b6c8d55849-10" name="rest_code_6c265355da6b4465acb892b6c8d55849-10" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6c265355da6b4465acb892b6c8d55849-10"&gt;&lt;/a&gt;&lt;span class="w"&gt;                                      &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_6c265355da6b4465acb892b6c8d55849-11" name="rest_code_6c265355da6b4465acb892b6c8d55849-11" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6c265355da6b4465acb892b6c8d55849-11"&gt;&lt;/a&gt;
&lt;a id="rest_code_6c265355da6b4465acb892b6c8d55849-12" name="rest_code_6c265355da6b4465acb892b6c8d55849-12" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6c265355da6b4465acb892b6c8d55849-12"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;AwMap2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AwMap1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nb"&gt;apply&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Key1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;a id="rest_code_6c265355da6b4465acb892b6c8d55849-13" name="rest_code_6c265355da6b4465acb892b6c8d55849-13" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6c265355da6b4465acb892b6c8d55849-13"&gt;&lt;/a&gt;&lt;span class="w"&gt;                                              &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;set&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Timestamp&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AwMapVal2&lt;/span&gt;&lt;span class="p"&gt;}},&lt;/span&gt;
&lt;a id="rest_code_6c265355da6b4465acb892b6c8d55849-14" name="rest_code_6c265355da6b4465acb892b6c8d55849-14" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6c265355da6b4465acb892b6c8d55849-14"&gt;&lt;/a&gt;&lt;span class="w"&gt;                                      &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_6c265355da6b4465acb892b6c8d55849-15" name="rest_code_6c265355da6b4465acb892b6c8d55849-15" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6c265355da6b4465acb892b6c8d55849-15"&gt;&lt;/a&gt;
&lt;a id="rest_code_6c265355da6b4465acb892b6c8d55849-16" name="rest_code_6c265355da6b4465acb892b6c8d55849-16" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6c265355da6b4465acb892b6c8d55849-16"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;AwMap3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AwMap2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nb"&gt;apply&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Key2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;a id="rest_code_6c265355da6b4465acb892b6c8d55849-17" name="rest_code_6c265355da6b4465acb892b6c8d55849-17" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6c265355da6b4465acb892b6c8d55849-17"&gt;&lt;/a&gt;&lt;span class="w"&gt;                                              &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;set&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Timestamp&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AwMapVal1&lt;/span&gt;&lt;span class="p"&gt;}},&lt;/span&gt;
&lt;a id="rest_code_6c265355da6b4465acb892b6c8d55849-18" name="rest_code_6c265355da6b4465acb892b6c8d55849-18" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6c265355da6b4465acb892b6c8d55849-18"&gt;&lt;/a&gt;&lt;span class="w"&gt;                                      &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_6c265355da6b4465acb892b6c8d55849-19" name="rest_code_6c265355da6b4465acb892b6c8d55849-19" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6c265355da6b4465acb892b6c8d55849-19"&gt;&lt;/a&gt;
&lt;a id="rest_code_6c265355da6b4465acb892b6c8d55849-20" name="rest_code_6c265355da6b4465acb892b6c8d55849-20" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6c265355da6b4465acb892b6c8d55849-20"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AwMapRes3&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AwMap3&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_6c265355da6b4465acb892b6c8d55849-21" name="rest_code_6c265355da6b4465acb892b6c8d55849-21" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6c265355da6b4465acb892b6c8d55849-21"&gt;&lt;/a&gt;
&lt;a id="rest_code_6c265355da6b4465acb892b6c8d55849-22" name="rest_code_6c265355da6b4465acb892b6c8d55849-22" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6c265355da6b4465acb892b6c8d55849-22"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;AwMap4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AwMap3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;rmv&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Key2&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_6c265355da6b4465acb892b6c8d55849-23" name="rest_code_6c265355da6b4465acb892b6c8d55849-23" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6c265355da6b4465acb892b6c8d55849-23"&gt;&lt;/a&gt;
&lt;a id="rest_code_6c265355da6b4465acb892b6c8d55849-24" name="rest_code_6c265355da6b4465acb892b6c8d55849-24" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6c265355da6b4465acb892b6c8d55849-24"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AwMapRes4&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AwMap4&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_6c265355da6b4465acb892b6c8d55849-25" name="rest_code_6c265355da6b4465acb892b6c8d55849-25" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6c265355da6b4465acb892b6c8d55849-25"&gt;&lt;/a&gt;
&lt;a id="rest_code_6c265355da6b4465acb892b6c8d55849-26" name="rest_code_6c265355da6b4465acb892b6c8d55849-26" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6c265355da6b4465acb892b6c8d55849-26"&gt;&lt;/a&gt;&lt;span class="c"&gt;% before removing Key2&lt;/span&gt;
&lt;a id="rest_code_6c265355da6b4465acb892b6c8d55849-27" name="rest_code_6c265355da6b4465acb892b6c8d55849-27" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6c265355da6b4465acb892b6c8d55849-27"&gt;&lt;/a&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="nv"&gt;K&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;sets&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;to_list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;V&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;||&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;K&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;V&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AwMapRes3&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;
&lt;a id="rest_code_6c265355da6b4465acb892b6c8d55849-28" name="rest_code_6c265355da6b4465acb892b6c8d55849-28" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6c265355da6b4465acb892b6c8d55849-28"&gt;&lt;/a&gt;&lt;span class="c"&gt;% [{&amp;lt;&amp;lt;"key1"&amp;gt;&amp;gt;,[bar]},{&amp;lt;&amp;lt;"key2"&amp;gt;&amp;gt;,[foo]}]&lt;/span&gt;
&lt;a id="rest_code_6c265355da6b4465acb892b6c8d55849-29" name="rest_code_6c265355da6b4465acb892b6c8d55849-29" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6c265355da6b4465acb892b6c8d55849-29"&gt;&lt;/a&gt;
&lt;a id="rest_code_6c265355da6b4465acb892b6c8d55849-30" name="rest_code_6c265355da6b4465acb892b6c8d55849-30" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6c265355da6b4465acb892b6c8d55849-30"&gt;&lt;/a&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="nv"&gt;K&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;sets&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;to_list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;V&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;||&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;K&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;V&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AwMapRes4&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;
&lt;a id="rest_code_6c265355da6b4465acb892b6c8d55849-31" name="rest_code_6c265355da6b4465acb892b6c8d55849-31" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6c265355da6b4465acb892b6c8d55849-31"&gt;&lt;/a&gt;&lt;span class="c"&gt;% [{&amp;lt;&amp;lt;"key1"&amp;gt;&amp;gt;,[bar]}]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a class="reference external" href="https://github.com/lasp-lang/types/blob/master/src/state_gmap.erl"&gt;GMap CRDT&lt;/a&gt;:&lt;/p&gt;
&lt;pre class="literal-block"&gt;Grow only map.
Modeled as a dictionary where keys can be anything and the
values are join-semilattices.&lt;/pre&gt;
&lt;dl class="simple"&gt;
&lt;dt&gt;&lt;cite&gt;{apply, Key, Op}&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Update Key with operation Op (since value is a type, you have to supply an
operation, for example if it's a register it may be &lt;em&gt;set&lt;/em&gt;, if it's a
counter it could be &lt;em&gt;increment&lt;/em&gt;).&lt;/p&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code erlang"&gt;&lt;a id="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-1" name="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-1" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-1"&gt;&lt;/a&gt;&lt;span class="nv"&gt;GMapType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;state_gmap&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;state_lwwregister&lt;/span&gt;&lt;span class="p"&gt;]}.&lt;/span&gt;
&lt;a id="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-2" name="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-2" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-2"&gt;&lt;/a&gt;&lt;span class="nv"&gt;GMapVarName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s"&gt;"gmap"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-3" name="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-3" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-3"&gt;&lt;/a&gt;&lt;span class="nv"&gt;GMapVal1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;foo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-4" name="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-4" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-4"&gt;&lt;/a&gt;&lt;span class="nv"&gt;GMapVal2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;bar&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-5" name="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-5" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-5"&gt;&lt;/a&gt;
&lt;a id="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-6" name="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-6" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-6"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;GMap&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;declare&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="nv"&gt;GMapVarName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GMapType&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GMapType&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-7" name="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-7" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-7"&gt;&lt;/a&gt;
&lt;a id="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-8" name="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-8" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-8"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;GMap1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;GMap&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nb"&gt;apply&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Key1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;a id="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-9" name="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-9" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-9"&gt;&lt;/a&gt;&lt;span class="w"&gt;                                              &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;set&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Timestamp&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GMapVal1&lt;/span&gt;&lt;span class="p"&gt;}},&lt;/span&gt;
&lt;a id="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-10" name="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-10" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-10"&gt;&lt;/a&gt;&lt;span class="w"&gt;                                      &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-11" name="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-11" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-11"&gt;&lt;/a&gt;
&lt;a id="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-12" name="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-12" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-12"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;GMap2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;GMap1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nb"&gt;apply&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Key1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;a id="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-13" name="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-13" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-13"&gt;&lt;/a&gt;&lt;span class="w"&gt;                                              &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;set&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Timestamp&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GMapVal2&lt;/span&gt;&lt;span class="p"&gt;}},&lt;/span&gt;
&lt;a id="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-14" name="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-14" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-14"&gt;&lt;/a&gt;&lt;span class="w"&gt;                                      &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-15" name="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-15" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-15"&gt;&lt;/a&gt;
&lt;a id="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-16" name="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-16" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-16"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;GMap3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;GMap2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nb"&gt;apply&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Key2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;a id="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-17" name="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-17" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-17"&gt;&lt;/a&gt;&lt;span class="w"&gt;                                              &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;set&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Timestamp&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GMapVal1&lt;/span&gt;&lt;span class="p"&gt;}},&lt;/span&gt;
&lt;a id="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-18" name="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-18" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-18"&gt;&lt;/a&gt;&lt;span class="w"&gt;                                      &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-19" name="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-19" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-19"&gt;&lt;/a&gt;
&lt;a id="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-20" name="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-20" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-20"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GMapRes3&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;GMap3&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-21" name="rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-21" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_0187726f8daa4b85ae48bca8a3bbbeb8-21"&gt;&lt;/a&gt;&lt;span class="c"&gt;% {ok,[{&amp;lt;&amp;lt;"key1"&amp;gt;&amp;gt;,bar},{&amp;lt;&amp;lt;"key2"&amp;gt;&amp;gt;,foo}]}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a class="reference external" href="https://github.com/lasp-lang/types/blob/master/src/state_mvmap.erl"&gt;MVMap&lt;/a&gt;:&lt;/p&gt;
&lt;pre class="literal-block"&gt;Multi-Value Map CRDT.
MVMap = AWMap&amp;lt;MVRegister&amp;lt;V&amp;gt;&amp;gt;&lt;/pre&gt;
&lt;p&gt;Operations:&lt;/p&gt;
&lt;dl class="simple"&gt;
&lt;dt&gt;&lt;cite&gt;{set, Key, Value}&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Set Key to Value&lt;/p&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code erlang"&gt;&lt;a id="rest_code_eddeabb324e14b2e9bf471cce262cbf9-1" name="rest_code_eddeabb324e14b2e9bf471cce262cbf9-1" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_eddeabb324e14b2e9bf471cce262cbf9-1"&gt;&lt;/a&gt;&lt;span class="nv"&gt;MVMapType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;state_mvmap&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_eddeabb324e14b2e9bf471cce262cbf9-2" name="rest_code_eddeabb324e14b2e9bf471cce262cbf9-2" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_eddeabb324e14b2e9bf471cce262cbf9-2"&gt;&lt;/a&gt;&lt;span class="nv"&gt;MVMapVarName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s"&gt;"mvmap"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_eddeabb324e14b2e9bf471cce262cbf9-3" name="rest_code_eddeabb324e14b2e9bf471cce262cbf9-3" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_eddeabb324e14b2e9bf471cce262cbf9-3"&gt;&lt;/a&gt;&lt;span class="nv"&gt;MVMapVal1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;foo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_eddeabb324e14b2e9bf471cce262cbf9-4" name="rest_code_eddeabb324e14b2e9bf471cce262cbf9-4" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_eddeabb324e14b2e9bf471cce262cbf9-4"&gt;&lt;/a&gt;&lt;span class="nv"&gt;MVMapVal2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;bar&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_eddeabb324e14b2e9bf471cce262cbf9-5" name="rest_code_eddeabb324e14b2e9bf471cce262cbf9-5" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_eddeabb324e14b2e9bf471cce262cbf9-5"&gt;&lt;/a&gt;
&lt;a id="rest_code_eddeabb324e14b2e9bf471cce262cbf9-6" name="rest_code_eddeabb324e14b2e9bf471cce262cbf9-6" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_eddeabb324e14b2e9bf471cce262cbf9-6"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;MVMap&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;declare&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="nv"&gt;MVMapVarName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;MVMapType&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;MVMapType&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_eddeabb324e14b2e9bf471cce262cbf9-7" name="rest_code_eddeabb324e14b2e9bf471cce262cbf9-7" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_eddeabb324e14b2e9bf471cce262cbf9-7"&gt;&lt;/a&gt;
&lt;a id="rest_code_eddeabb324e14b2e9bf471cce262cbf9-8" name="rest_code_eddeabb324e14b2e9bf471cce262cbf9-8" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_eddeabb324e14b2e9bf471cce262cbf9-8"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;MVMap1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;MVMap&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;set&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Key1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;MVMapVal1&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_eddeabb324e14b2e9bf471cce262cbf9-9" name="rest_code_eddeabb324e14b2e9bf471cce262cbf9-9" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_eddeabb324e14b2e9bf471cce262cbf9-9"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;MVMap2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;MVMap1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;set&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Key1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;MVMapVal2&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_eddeabb324e14b2e9bf471cce262cbf9-10" name="rest_code_eddeabb324e14b2e9bf471cce262cbf9-10" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_eddeabb324e14b2e9bf471cce262cbf9-10"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;MVMap3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;MVMap2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;set&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Key2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;MVMapVal1&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_eddeabb324e14b2e9bf471cce262cbf9-11" name="rest_code_eddeabb324e14b2e9bf471cce262cbf9-11" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_eddeabb324e14b2e9bf471cce262cbf9-11"&gt;&lt;/a&gt;
&lt;a id="rest_code_eddeabb324e14b2e9bf471cce262cbf9-12" name="rest_code_eddeabb324e14b2e9bf471cce262cbf9-12" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_eddeabb324e14b2e9bf471cce262cbf9-12"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;MVMapRes3&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;MVMap3&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_eddeabb324e14b2e9bf471cce262cbf9-13" name="rest_code_eddeabb324e14b2e9bf471cce262cbf9-13" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_eddeabb324e14b2e9bf471cce262cbf9-13"&gt;&lt;/a&gt;
&lt;a id="rest_code_eddeabb324e14b2e9bf471cce262cbf9-14" name="rest_code_eddeabb324e14b2e9bf471cce262cbf9-14" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_eddeabb324e14b2e9bf471cce262cbf9-14"&gt;&lt;/a&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="nv"&gt;K&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;sets&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;to_list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;V&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;||&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;K&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;V&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;MVMapRes3&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;
&lt;a id="rest_code_eddeabb324e14b2e9bf471cce262cbf9-15" name="rest_code_eddeabb324e14b2e9bf471cce262cbf9-15" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_eddeabb324e14b2e9bf471cce262cbf9-15"&gt;&lt;/a&gt;&lt;span class="c"&gt;% [{&amp;lt;&amp;lt;"key1"&amp;gt;&amp;gt;,[bar]},{&amp;lt;&amp;lt;"key2"&amp;gt;&amp;gt;,[foo]}]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a class="reference external" href="https://github.com/lasp-lang/types/blob/master/src/state_pair.erl"&gt;Pair&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Operations:&lt;/p&gt;
&lt;dl class="simple"&gt;
&lt;dt&gt;&lt;cite&gt;{fst, Value}&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Mutates the first item in the pair&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;cite&gt;{snd, Value}&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Mutates the second item in the pair&lt;/p&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code erlang"&gt;&lt;a id="rest_code_df394c6fe7224ce98ffe8cc98dad2672-1" name="rest_code_df394c6fe7224ce98ffe8cc98dad2672-1" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_df394c6fe7224ce98ffe8cc98dad2672-1"&gt;&lt;/a&gt;&lt;span class="nv"&gt;PairLeftType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;state_lwwregister&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_df394c6fe7224ce98ffe8cc98dad2672-2" name="rest_code_df394c6fe7224ce98ffe8cc98dad2672-2" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_df394c6fe7224ce98ffe8cc98dad2672-2"&gt;&lt;/a&gt;&lt;span class="nv"&gt;PairRightType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;state_gcounter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_df394c6fe7224ce98ffe8cc98dad2672-3" name="rest_code_df394c6fe7224ce98ffe8cc98dad2672-3" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_df394c6fe7224ce98ffe8cc98dad2672-3"&gt;&lt;/a&gt;&lt;span class="nv"&gt;PairType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;state_pair&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;PairLeftType&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;PairRightType&lt;/span&gt;&lt;span class="p"&gt;]}.&lt;/span&gt;
&lt;a id="rest_code_df394c6fe7224ce98ffe8cc98dad2672-4" name="rest_code_df394c6fe7224ce98ffe8cc98dad2672-4" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_df394c6fe7224ce98ffe8cc98dad2672-4"&gt;&lt;/a&gt;&lt;span class="nv"&gt;PairVarName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s"&gt;"pair"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_df394c6fe7224ce98ffe8cc98dad2672-5" name="rest_code_df394c6fe7224ce98ffe8cc98dad2672-5" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_df394c6fe7224ce98ffe8cc98dad2672-5"&gt;&lt;/a&gt;&lt;span class="nv"&gt;PairVal1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;foo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_df394c6fe7224ce98ffe8cc98dad2672-6" name="rest_code_df394c6fe7224ce98ffe8cc98dad2672-6" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_df394c6fe7224ce98ffe8cc98dad2672-6"&gt;&lt;/a&gt;&lt;span class="nv"&gt;PairVal2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;bar&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_df394c6fe7224ce98ffe8cc98dad2672-7" name="rest_code_df394c6fe7224ce98ffe8cc98dad2672-7" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_df394c6fe7224ce98ffe8cc98dad2672-7"&gt;&lt;/a&gt;
&lt;a id="rest_code_df394c6fe7224ce98ffe8cc98dad2672-8" name="rest_code_df394c6fe7224ce98ffe8cc98dad2672-8" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_df394c6fe7224ce98ffe8cc98dad2672-8"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;Pair&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;declare&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="nv"&gt;PairVarName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;PairType&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;PairType&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_df394c6fe7224ce98ffe8cc98dad2672-9" name="rest_code_df394c6fe7224ce98ffe8cc98dad2672-9" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_df394c6fe7224ce98ffe8cc98dad2672-9"&gt;&lt;/a&gt;
&lt;a id="rest_code_df394c6fe7224ce98ffe8cc98dad2672-10" name="rest_code_df394c6fe7224ce98ffe8cc98dad2672-10" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_df394c6fe7224ce98ffe8cc98dad2672-10"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;Pair1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;Pair&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;fst&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;set&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Timestamp&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;PairVal1&lt;/span&gt;&lt;span class="p"&gt;}},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_df394c6fe7224ce98ffe8cc98dad2672-11" name="rest_code_df394c6fe7224ce98ffe8cc98dad2672-11" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_df394c6fe7224ce98ffe8cc98dad2672-11"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;Pair2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;Pair1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;snd&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;increment&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_df394c6fe7224ce98ffe8cc98dad2672-12" name="rest_code_df394c6fe7224ce98ffe8cc98dad2672-12" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_df394c6fe7224ce98ffe8cc98dad2672-12"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;Pair3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;Pair2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;fst&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;set&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Timestamp&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;PairVal2&lt;/span&gt;&lt;span class="p"&gt;}},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_df394c6fe7224ce98ffe8cc98dad2672-13" name="rest_code_df394c6fe7224ce98ffe8cc98dad2672-13" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_df394c6fe7224ce98ffe8cc98dad2672-13"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;Pair4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;Pair3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;snd&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;increment&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_df394c6fe7224ce98ffe8cc98dad2672-14" name="rest_code_df394c6fe7224ce98ffe8cc98dad2672-14" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_df394c6fe7224ce98ffe8cc98dad2672-14"&gt;&lt;/a&gt;
&lt;a id="rest_code_df394c6fe7224ce98ffe8cc98dad2672-15" name="rest_code_df394c6fe7224ce98ffe8cc98dad2672-15" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_df394c6fe7224ce98ffe8cc98dad2672-15"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;PairRes4&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;Pair4&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_df394c6fe7224ce98ffe8cc98dad2672-16" name="rest_code_df394c6fe7224ce98ffe8cc98dad2672-16" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_df394c6fe7224ce98ffe8cc98dad2672-16"&gt;&lt;/a&gt;
&lt;a id="rest_code_df394c6fe7224ce98ffe8cc98dad2672-17" name="rest_code_df394c6fe7224ce98ffe8cc98dad2672-17" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_df394c6fe7224ce98ffe8cc98dad2672-17"&gt;&lt;/a&gt;&lt;span class="nv"&gt;PairRes4&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_df394c6fe7224ce98ffe8cc98dad2672-18" name="rest_code_df394c6fe7224ce98ffe8cc98dad2672-18" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_df394c6fe7224ce98ffe8cc98dad2672-18"&gt;&lt;/a&gt;&lt;span class="c"&gt;% {bar,2}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a class="reference external" href="https://github.com/lasp-lang/types/blob/master/src/state_orset.erl"&gt;ORSet CRDT&lt;/a&gt;:&lt;/p&gt;
&lt;pre class="literal-block"&gt;Observed-Remove Set with tombstones&lt;/pre&gt;
&lt;dl class="simple"&gt;
&lt;dt&gt;&lt;cite&gt;{add, Element}&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Add Element to the Set&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;cite&gt;{add_by_token, token(), element()}&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Add Element to the Set by Token (orset internally generates a unique token
for the element, therefore, it's not deterministic, this allows it to be
explicit, and therefore deterministic)&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;cite&gt;{add_all, ListOfElements}&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Add a list of elements to the set&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;cite&gt;{rmv, Element}&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Remove Element from the set&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;cite&gt;{rmv_all, ListOfElements}&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Remove a list of elements from the set&lt;/p&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code erlang"&gt;&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-1" name="rest_code_3715966b379a4df78f46c20f2081dab9-1" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-1"&gt;&lt;/a&gt;&lt;span class="nv"&gt;ORSetType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;state_orset&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-2" name="rest_code_3715966b379a4df78f46c20f2081dab9-2" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-2"&gt;&lt;/a&gt;&lt;span class="nv"&gt;ORSetVarName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s"&gt;"orset"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-3" name="rest_code_3715966b379a4df78f46c20f2081dab9-3" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-3"&gt;&lt;/a&gt;&lt;span class="nv"&gt;ORSetVal1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;foo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-4" name="rest_code_3715966b379a4df78f46c20f2081dab9-4" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-4"&gt;&lt;/a&gt;&lt;span class="nv"&gt;ORSetVal2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;bar&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-5" name="rest_code_3715966b379a4df78f46c20f2081dab9-5" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-5"&gt;&lt;/a&gt;&lt;span class="nv"&gt;ORSetVal3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;baz&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-6" name="rest_code_3715966b379a4df78f46c20f2081dab9-6" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-6"&gt;&lt;/a&gt;&lt;span class="nv"&gt;ORSetAllVals&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;ORSetVal1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;ORSetVal2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;ORSetVal3&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;
&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-7" name="rest_code_3715966b379a4df78f46c20f2081dab9-7" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-7"&gt;&lt;/a&gt;
&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-8" name="rest_code_3715966b379a4df78f46c20f2081dab9-8" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-8"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;ORSet&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;declare&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="nv"&gt;ORSetVarName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;ORSetType&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;ORSetType&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-9" name="rest_code_3715966b379a4df78f46c20f2081dab9-9" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-9"&gt;&lt;/a&gt;
&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-10" name="rest_code_3715966b379a4df78f46c20f2081dab9-10" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-10"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;ORSet1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;ORSet&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;ORSetVal1&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-11" name="rest_code_3715966b379a4df78f46c20f2081dab9-11" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-11"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;ORSet2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;ORSet1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;ORSetVal2&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-12" name="rest_code_3715966b379a4df78f46c20f2081dab9-12" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-12"&gt;&lt;/a&gt;&lt;span class="c"&gt;% repeat value&lt;/span&gt;
&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-13" name="rest_code_3715966b379a4df78f46c20f2081dab9-13" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-13"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;ORSet3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;ORSet2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;ORSetVal1&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-14" name="rest_code_3715966b379a4df78f46c20f2081dab9-14" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-14"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;ORSet4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;ORSet3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;ORSetVal3&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-15" name="rest_code_3715966b379a4df78f46c20f2081dab9-15" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-15"&gt;&lt;/a&gt;
&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-16" name="rest_code_3715966b379a4df78f46c20f2081dab9-16" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-16"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;ORSetRes4&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;ORSet4&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-17" name="rest_code_3715966b379a4df78f46c20f2081dab9-17" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-17"&gt;&lt;/a&gt;&lt;span class="nn"&gt;sets&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;to_list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;ORSetRes4&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-18" name="rest_code_3715966b379a4df78f46c20f2081dab9-18" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-18"&gt;&lt;/a&gt;&lt;span class="c"&gt;% [bar,baz,foo]&lt;/span&gt;
&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-19" name="rest_code_3715966b379a4df78f46c20f2081dab9-19" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-19"&gt;&lt;/a&gt;
&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-20" name="rest_code_3715966b379a4df78f46c20f2081dab9-20" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-20"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;ORSet5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;ORSet4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;rmv&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;ORSetVal3&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-21" name="rest_code_3715966b379a4df78f46c20f2081dab9-21" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-21"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;ORSetRes5&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;ORSet5&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-22" name="rest_code_3715966b379a4df78f46c20f2081dab9-22" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-22"&gt;&lt;/a&gt;&lt;span class="nn"&gt;sets&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;to_list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;ORSetRes5&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-23" name="rest_code_3715966b379a4df78f46c20f2081dab9-23" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-23"&gt;&lt;/a&gt;&lt;span class="c"&gt;% [bar,foo]&lt;/span&gt;
&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-24" name="rest_code_3715966b379a4df78f46c20f2081dab9-24" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-24"&gt;&lt;/a&gt;
&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-25" name="rest_code_3715966b379a4df78f46c20f2081dab9-25" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-25"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;ORSet6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;ORSet5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;rmv_all&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;ORSetAllVals&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-26" name="rest_code_3715966b379a4df78f46c20f2081dab9-26" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-26"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;ORSetRes6&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;ORSet6&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-27" name="rest_code_3715966b379a4df78f46c20f2081dab9-27" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-27"&gt;&lt;/a&gt;&lt;span class="nn"&gt;sets&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;to_list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;ORSetRes6&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-28" name="rest_code_3715966b379a4df78f46c20f2081dab9-28" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-28"&gt;&lt;/a&gt;&lt;span class="c"&gt;% []&lt;/span&gt;
&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-29" name="rest_code_3715966b379a4df78f46c20f2081dab9-29" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-29"&gt;&lt;/a&gt;
&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-30" name="rest_code_3715966b379a4df78f46c20f2081dab9-30" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-30"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;ORSet7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;ORSet6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;add_all&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;ORSetAllVals&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-31" name="rest_code_3715966b379a4df78f46c20f2081dab9-31" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-31"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;ORSetRes7&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;ORSet7&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-32" name="rest_code_3715966b379a4df78f46c20f2081dab9-32" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-32"&gt;&lt;/a&gt;&lt;span class="nn"&gt;sets&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;to_list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;ORSetRes7&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_3715966b379a4df78f46c20f2081dab9-33" name="rest_code_3715966b379a4df78f46c20f2081dab9-33" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_3715966b379a4df78f46c20f2081dab9-33"&gt;&lt;/a&gt;&lt;span class="c"&gt;% [bar,baz,foo]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a class="reference external" href="https://github.com/lasp-lang/types/blob/master/src/state_awset.erl"&gt;Add-Wins ORSet CRDT&lt;/a&gt;:&lt;/p&gt;
&lt;pre class="literal-block"&gt;Observed-Remove Set without tombstones&lt;/pre&gt;
&lt;p&gt;Operations:&lt;/p&gt;
&lt;dl class="simple"&gt;
&lt;dt&gt;&lt;cite&gt;{add, Element}&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Add Element to the Set&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;cite&gt;{add_all, ListOfElements}&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Add a list of elements to the set&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;cite&gt;{rmv, Element}&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Remove Element from the set&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;cite&gt;{rmv_all, ListOfElements}&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Remove a list of elements from the set&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;cite&gt;{filter, Function}&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Filter elements in the set&lt;/p&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code erlang"&gt;&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-1" name="rest_code_6079282cc495409d96b4d28ae646e60e-1" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-1"&gt;&lt;/a&gt;&lt;span class="nv"&gt;AWSetType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;state_awset&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-2" name="rest_code_6079282cc495409d96b4d28ae646e60e-2" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-2"&gt;&lt;/a&gt;&lt;span class="nv"&gt;AWSetVarName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s"&gt;"awset"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-3" name="rest_code_6079282cc495409d96b4d28ae646e60e-3" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-3"&gt;&lt;/a&gt;&lt;span class="nv"&gt;AWSetVal1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;foo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-4" name="rest_code_6079282cc495409d96b4d28ae646e60e-4" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-4"&gt;&lt;/a&gt;&lt;span class="nv"&gt;AWSetVal2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;bar&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-5" name="rest_code_6079282cc495409d96b4d28ae646e60e-5" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-5"&gt;&lt;/a&gt;&lt;span class="nv"&gt;AWSetVal3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;baz&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-6" name="rest_code_6079282cc495409d96b4d28ae646e60e-6" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-6"&gt;&lt;/a&gt;&lt;span class="nv"&gt;AWSetAllVals&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;AWSetVal1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AWSetVal2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AWSetVal3&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;
&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-7" name="rest_code_6079282cc495409d96b4d28ae646e60e-7" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-7"&gt;&lt;/a&gt;
&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-8" name="rest_code_6079282cc495409d96b4d28ae646e60e-8" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-8"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;AWSet&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;declare&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="nv"&gt;AWSetVarName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AWSetType&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AWSetType&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-9" name="rest_code_6079282cc495409d96b4d28ae646e60e-9" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-9"&gt;&lt;/a&gt;
&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-10" name="rest_code_6079282cc495409d96b4d28ae646e60e-10" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-10"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;AWSet1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AWSet&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AWSetVal1&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-11" name="rest_code_6079282cc495409d96b4d28ae646e60e-11" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-11"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;AWSet2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AWSet1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AWSetVal2&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-12" name="rest_code_6079282cc495409d96b4d28ae646e60e-12" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-12"&gt;&lt;/a&gt;&lt;span class="c"&gt;% repeat value&lt;/span&gt;
&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-13" name="rest_code_6079282cc495409d96b4d28ae646e60e-13" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-13"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;AWSet3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AWSet2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AWSetVal1&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-14" name="rest_code_6079282cc495409d96b4d28ae646e60e-14" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-14"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;AWSet4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AWSet3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AWSetVal3&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-15" name="rest_code_6079282cc495409d96b4d28ae646e60e-15" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-15"&gt;&lt;/a&gt;
&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-16" name="rest_code_6079282cc495409d96b4d28ae646e60e-16" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-16"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AWSetRes4&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AWSet4&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-17" name="rest_code_6079282cc495409d96b4d28ae646e60e-17" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-17"&gt;&lt;/a&gt;&lt;span class="nn"&gt;sets&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;to_list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AWSetRes4&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-18" name="rest_code_6079282cc495409d96b4d28ae646e60e-18" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-18"&gt;&lt;/a&gt;&lt;span class="c"&gt;% [bar,baz,foo]&lt;/span&gt;
&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-19" name="rest_code_6079282cc495409d96b4d28ae646e60e-19" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-19"&gt;&lt;/a&gt;
&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-20" name="rest_code_6079282cc495409d96b4d28ae646e60e-20" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-20"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;AWSet5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AWSet4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;rmv&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AWSetVal3&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-21" name="rest_code_6079282cc495409d96b4d28ae646e60e-21" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-21"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AWSetRes5&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AWSet5&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-22" name="rest_code_6079282cc495409d96b4d28ae646e60e-22" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-22"&gt;&lt;/a&gt;&lt;span class="nn"&gt;sets&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;to_list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AWSetRes5&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-23" name="rest_code_6079282cc495409d96b4d28ae646e60e-23" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-23"&gt;&lt;/a&gt;&lt;span class="c"&gt;% [bar,foo]&lt;/span&gt;
&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-24" name="rest_code_6079282cc495409d96b4d28ae646e60e-24" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-24"&gt;&lt;/a&gt;
&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-25" name="rest_code_6079282cc495409d96b4d28ae646e60e-25" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-25"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;AWSet6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AWSet5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;rmv_all&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AWSetAllVals&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-26" name="rest_code_6079282cc495409d96b4d28ae646e60e-26" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-26"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AWSetRes6&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AWSet6&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-27" name="rest_code_6079282cc495409d96b4d28ae646e60e-27" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-27"&gt;&lt;/a&gt;&lt;span class="nn"&gt;sets&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;to_list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AWSetRes6&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-28" name="rest_code_6079282cc495409d96b4d28ae646e60e-28" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-28"&gt;&lt;/a&gt;&lt;span class="c"&gt;% []&lt;/span&gt;
&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-29" name="rest_code_6079282cc495409d96b4d28ae646e60e-29" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-29"&gt;&lt;/a&gt;
&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-30" name="rest_code_6079282cc495409d96b4d28ae646e60e-30" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-30"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;AWSet7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AWSet6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;add_all&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AWSetAllVals&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-31" name="rest_code_6079282cc495409d96b4d28ae646e60e-31" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-31"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AWSetRes7&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AWSet7&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-32" name="rest_code_6079282cc495409d96b4d28ae646e60e-32" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-32"&gt;&lt;/a&gt;&lt;span class="nn"&gt;sets&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;to_list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AWSetRes7&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_6079282cc495409d96b4d28ae646e60e-33" name="rest_code_6079282cc495409d96b4d28ae646e60e-33" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_6079282cc495409d96b4d28ae646e60e-33"&gt;&lt;/a&gt;&lt;span class="c"&gt;% [bar,baz,foo]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a class="reference external" href="https://github.com/lasp-lang/types/blob/master/src/state_awset_ps.erl"&gt;Add-Wins Set CRDT with the provenance semiring&lt;/a&gt;:&lt;/p&gt;
&lt;pre class="literal-block"&gt;add-wins set without tombstones&lt;/pre&gt;
&lt;p&gt;Operations:&lt;/p&gt;
&lt;dl class="simple"&gt;
&lt;dt&gt;&lt;cite&gt;{add, Element}&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Add Element to the Set&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;cite&gt;{add_all, ListOfElements}&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Add a list of elements to the set&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;cite&gt;{rmv, Element}&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Remove Element from the set&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;cite&gt;{rmv_all, ListOfElements}&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Remove a list of elements from the set&lt;/p&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code erlang"&gt;&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-1" name="rest_code_5da4f51083354d50a75d6e11b298062f-1" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-1"&gt;&lt;/a&gt;&lt;span class="nv"&gt;AWPSSetType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;state_awset_ps&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-2" name="rest_code_5da4f51083354d50a75d6e11b298062f-2" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-2"&gt;&lt;/a&gt;&lt;span class="nv"&gt;AWPSSetVarName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s"&gt;"awset_ps"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-3" name="rest_code_5da4f51083354d50a75d6e11b298062f-3" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-3"&gt;&lt;/a&gt;&lt;span class="nv"&gt;AWPSSetVal1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;foo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-4" name="rest_code_5da4f51083354d50a75d6e11b298062f-4" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-4"&gt;&lt;/a&gt;&lt;span class="nv"&gt;AWPSSetVal2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;bar&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-5" name="rest_code_5da4f51083354d50a75d6e11b298062f-5" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-5"&gt;&lt;/a&gt;&lt;span class="nv"&gt;AWPSSetVal3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;baz&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-6" name="rest_code_5da4f51083354d50a75d6e11b298062f-6" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-6"&gt;&lt;/a&gt;&lt;span class="nv"&gt;AWPSSetAllVals&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;AWPSSetVal1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AWPSSetVal2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AWPSSetVal3&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;
&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-7" name="rest_code_5da4f51083354d50a75d6e11b298062f-7" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-7"&gt;&lt;/a&gt;
&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-8" name="rest_code_5da4f51083354d50a75d6e11b298062f-8" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-8"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;AWPSSet&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;declare&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="nv"&gt;AWPSSetVarName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AWPSSetType&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AWPSSetType&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-9" name="rest_code_5da4f51083354d50a75d6e11b298062f-9" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-9"&gt;&lt;/a&gt;
&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-10" name="rest_code_5da4f51083354d50a75d6e11b298062f-10" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-10"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;AWPSSet1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AWPSSet&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AWPSSetVal1&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-11" name="rest_code_5da4f51083354d50a75d6e11b298062f-11" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-11"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;AWPSSet2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AWPSSet1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AWPSSetVal2&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-12" name="rest_code_5da4f51083354d50a75d6e11b298062f-12" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-12"&gt;&lt;/a&gt;&lt;span class="c"&gt;% repeat value&lt;/span&gt;
&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-13" name="rest_code_5da4f51083354d50a75d6e11b298062f-13" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-13"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;AWPSSet3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AWPSSet2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AWPSSetVal1&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-14" name="rest_code_5da4f51083354d50a75d6e11b298062f-14" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-14"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;AWPSSet4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AWPSSet3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AWPSSetVal3&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-15" name="rest_code_5da4f51083354d50a75d6e11b298062f-15" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-15"&gt;&lt;/a&gt;
&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-16" name="rest_code_5da4f51083354d50a75d6e11b298062f-16" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-16"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AWPSSetRes4&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AWPSSet4&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-17" name="rest_code_5da4f51083354d50a75d6e11b298062f-17" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-17"&gt;&lt;/a&gt;&lt;span class="nn"&gt;sets&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;to_list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AWPSSetRes4&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-18" name="rest_code_5da4f51083354d50a75d6e11b298062f-18" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-18"&gt;&lt;/a&gt;&lt;span class="c"&gt;% [bar,baz,foo]&lt;/span&gt;
&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-19" name="rest_code_5da4f51083354d50a75d6e11b298062f-19" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-19"&gt;&lt;/a&gt;
&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-20" name="rest_code_5da4f51083354d50a75d6e11b298062f-20" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-20"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;AWPSSet5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AWPSSet4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;rmv&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AWPSSetVal3&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-21" name="rest_code_5da4f51083354d50a75d6e11b298062f-21" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-21"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AWPSSetRes5&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AWPSSet5&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-22" name="rest_code_5da4f51083354d50a75d6e11b298062f-22" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-22"&gt;&lt;/a&gt;&lt;span class="nn"&gt;sets&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;to_list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AWPSSetRes5&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-23" name="rest_code_5da4f51083354d50a75d6e11b298062f-23" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-23"&gt;&lt;/a&gt;&lt;span class="c"&gt;% [bar,foo]&lt;/span&gt;
&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-24" name="rest_code_5da4f51083354d50a75d6e11b298062f-24" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-24"&gt;&lt;/a&gt;
&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-25" name="rest_code_5da4f51083354d50a75d6e11b298062f-25" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-25"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;AWPSSet6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AWPSSet5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;rmv_all&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AWPSSetAllVals&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-26" name="rest_code_5da4f51083354d50a75d6e11b298062f-26" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-26"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AWPSSetRes6&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AWPSSet6&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-27" name="rest_code_5da4f51083354d50a75d6e11b298062f-27" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-27"&gt;&lt;/a&gt;&lt;span class="nn"&gt;sets&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;to_list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AWPSSetRes6&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-28" name="rest_code_5da4f51083354d50a75d6e11b298062f-28" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-28"&gt;&lt;/a&gt;&lt;span class="c"&gt;% []&lt;/span&gt;
&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-29" name="rest_code_5da4f51083354d50a75d6e11b298062f-29" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-29"&gt;&lt;/a&gt;
&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-30" name="rest_code_5da4f51083354d50a75d6e11b298062f-30" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-30"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;AWPSSet7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AWPSSet6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;add_all&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AWPSSetAllVals&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-31" name="rest_code_5da4f51083354d50a75d6e11b298062f-31" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-31"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AWPSSetRes7&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AWPSSet7&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-32" name="rest_code_5da4f51083354d50a75d6e11b298062f-32" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-32"&gt;&lt;/a&gt;&lt;span class="nn"&gt;sets&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;to_list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;AWPSSetRes7&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_5da4f51083354d50a75d6e11b298062f-33" name="rest_code_5da4f51083354d50a75d6e11b298062f-33" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_5da4f51083354d50a75d6e11b298062f-33"&gt;&lt;/a&gt;&lt;span class="c"&gt;% [bar,baz,foo]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a class="reference external" href="https://github.com/lasp-lang/types/blob/master/src/state_gset.erl"&gt;GSet CRDT&lt;/a&gt;:&lt;/p&gt;
&lt;pre class="literal-block"&gt;Grow only set&lt;/pre&gt;
&lt;p&gt;Operations:&lt;/p&gt;
&lt;dl class="simple"&gt;
&lt;dt&gt;&lt;cite&gt;{add, Element}&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Add Element to the Set&lt;/p&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code erlang"&gt;&lt;a id="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-1" name="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-1" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_60ffabb765c749e0b88f80e6f77e8f3a-1"&gt;&lt;/a&gt;&lt;span class="nv"&gt;GSetType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;state_gset&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-2" name="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-2" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_60ffabb765c749e0b88f80e6f77e8f3a-2"&gt;&lt;/a&gt;&lt;span class="nv"&gt;GSetVarName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s"&gt;"gset"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-3" name="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-3" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_60ffabb765c749e0b88f80e6f77e8f3a-3"&gt;&lt;/a&gt;&lt;span class="nv"&gt;GSetVal1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;foo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-4" name="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-4" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_60ffabb765c749e0b88f80e6f77e8f3a-4"&gt;&lt;/a&gt;&lt;span class="nv"&gt;GSetVal2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;bar&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-5" name="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-5" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_60ffabb765c749e0b88f80e6f77e8f3a-5"&gt;&lt;/a&gt;&lt;span class="nv"&gt;GSetVal3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;baz&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-6" name="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-6" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_60ffabb765c749e0b88f80e6f77e8f3a-6"&gt;&lt;/a&gt;&lt;span class="nv"&gt;GSetAllVals&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;GSetVal1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GSetVal2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GSetVal3&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;
&lt;a id="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-7" name="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-7" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_60ffabb765c749e0b88f80e6f77e8f3a-7"&gt;&lt;/a&gt;
&lt;a id="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-8" name="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-8" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_60ffabb765c749e0b88f80e6f77e8f3a-8"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;GSet&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;declare&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="nv"&gt;GSetVarName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GSetType&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GSetType&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-9" name="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-9" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_60ffabb765c749e0b88f80e6f77e8f3a-9"&gt;&lt;/a&gt;
&lt;a id="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-10" name="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-10" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_60ffabb765c749e0b88f80e6f77e8f3a-10"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;GSet1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;GSet&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GSetVal1&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-11" name="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-11" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_60ffabb765c749e0b88f80e6f77e8f3a-11"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;GSet2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;GSet1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GSetVal2&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-12" name="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-12" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_60ffabb765c749e0b88f80e6f77e8f3a-12"&gt;&lt;/a&gt;&lt;span class="c"&gt;% repeat value&lt;/span&gt;
&lt;a id="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-13" name="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-13" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_60ffabb765c749e0b88f80e6f77e8f3a-13"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;GSet3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;GSet2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GSetVal1&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-14" name="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-14" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_60ffabb765c749e0b88f80e6f77e8f3a-14"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;GSet4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;GSet3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GSetVal3&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-15" name="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-15" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_60ffabb765c749e0b88f80e6f77e8f3a-15"&gt;&lt;/a&gt;
&lt;a id="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-16" name="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-16" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_60ffabb765c749e0b88f80e6f77e8f3a-16"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GSetRes4&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;GSet4&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-17" name="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-17" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_60ffabb765c749e0b88f80e6f77e8f3a-17"&gt;&lt;/a&gt;&lt;span class="nn"&gt;sets&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;to_list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;GSetRes4&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-18" name="rest_code_60ffabb765c749e0b88f80e6f77e8f3a-18" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_60ffabb765c749e0b88f80e6f77e8f3a-18"&gt;&lt;/a&gt;&lt;span class="c"&gt;% [bar,baz,foo]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a class="reference external" href="https://github.com/lasp-lang/types/blob/master/src/state_twopset.erl"&gt;2PSet CRDT&lt;/a&gt;:&lt;/p&gt;
&lt;pre class="literal-block"&gt;Two-Phased Set

Once removed, elements cannot be added again.

Also, this is not an observed removed variant.

This means elements can be removed before being in the set.&lt;/pre&gt;
&lt;p&gt;Operations:&lt;/p&gt;
&lt;dl class="simple"&gt;
&lt;dt&gt;&lt;cite&gt;{add, Element}&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Add Element to the Set&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;cite&gt;{rmv, Element}&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Remove Element from the set&lt;/p&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code erlang"&gt;&lt;a id="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-1" name="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-1" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_7122ba7d2f3645fc8c003a51dbcd9338-1"&gt;&lt;/a&gt;&lt;span class="nv"&gt;TPSetType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;state_awset_ps&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-2" name="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-2" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_7122ba7d2f3645fc8c003a51dbcd9338-2"&gt;&lt;/a&gt;&lt;span class="nv"&gt;TPSetVarName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s"&gt;"awset_ps"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-3" name="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-3" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_7122ba7d2f3645fc8c003a51dbcd9338-3"&gt;&lt;/a&gt;&lt;span class="nv"&gt;TPSetVal1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;foo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-4" name="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-4" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_7122ba7d2f3645fc8c003a51dbcd9338-4"&gt;&lt;/a&gt;&lt;span class="nv"&gt;TPSetVal2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;bar&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-5" name="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-5" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_7122ba7d2f3645fc8c003a51dbcd9338-5"&gt;&lt;/a&gt;&lt;span class="nv"&gt;TPSetVal3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;baz&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;a id="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-6" name="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-6" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_7122ba7d2f3645fc8c003a51dbcd9338-6"&gt;&lt;/a&gt;&lt;span class="nv"&gt;TPSetAllVals&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;TPSetVal1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;TPSetVal2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;TPSetVal3&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;
&lt;a id="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-7" name="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-7" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_7122ba7d2f3645fc8c003a51dbcd9338-7"&gt;&lt;/a&gt;
&lt;a id="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-8" name="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-8" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_7122ba7d2f3645fc8c003a51dbcd9338-8"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;TPSet&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;declare&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="nv"&gt;TPSetVarName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;TPSetType&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;TPSetType&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-9" name="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-9" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_7122ba7d2f3645fc8c003a51dbcd9338-9"&gt;&lt;/a&gt;
&lt;a id="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-10" name="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-10" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_7122ba7d2f3645fc8c003a51dbcd9338-10"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;TPSet1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;TPSet&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;TPSetVal1&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-11" name="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-11" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_7122ba7d2f3645fc8c003a51dbcd9338-11"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;TPSet2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;TPSet1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;TPSetVal2&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-12" name="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-12" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_7122ba7d2f3645fc8c003a51dbcd9338-12"&gt;&lt;/a&gt;&lt;span class="c"&gt;% repeat value&lt;/span&gt;
&lt;a id="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-13" name="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-13" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_7122ba7d2f3645fc8c003a51dbcd9338-13"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;TPSet3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;TPSet2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;TPSetVal1&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-14" name="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-14" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_7122ba7d2f3645fc8c003a51dbcd9338-14"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;TPSet4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;TPSet3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;TPSetVal3&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-15" name="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-15" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_7122ba7d2f3645fc8c003a51dbcd9338-15"&gt;&lt;/a&gt;
&lt;a id="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-16" name="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-16" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_7122ba7d2f3645fc8c003a51dbcd9338-16"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;TPSetRes4&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;TPSet4&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-17" name="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-17" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_7122ba7d2f3645fc8c003a51dbcd9338-17"&gt;&lt;/a&gt;&lt;span class="nn"&gt;sets&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;to_list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;TPSetRes4&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-18" name="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-18" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_7122ba7d2f3645fc8c003a51dbcd9338-18"&gt;&lt;/a&gt;&lt;span class="c"&gt;% [bar,baz,foo]&lt;/span&gt;
&lt;a id="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-19" name="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-19" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_7122ba7d2f3645fc8c003a51dbcd9338-19"&gt;&lt;/a&gt;
&lt;a id="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-20" name="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-20" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_7122ba7d2f3645fc8c003a51dbcd9338-20"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;TPSet5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;_}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;TPSet4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;rmv&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;TPSetVal3&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;
&lt;a id="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-21" name="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-21" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_7122ba7d2f3645fc8c003a51dbcd9338-21"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;TPSetRes5&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;lasp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;TPSet5&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-22" name="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-22" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_7122ba7d2f3645fc8c003a51dbcd9338-22"&gt;&lt;/a&gt;&lt;span class="nn"&gt;sets&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nf"&gt;to_list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;TPSetRes5&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;
&lt;a id="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-23" name="rest_code_7122ba7d2f3645fc8c003a51dbcd9338-23" href="http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/#rest_code_7122ba7d2f3645fc8c003a51dbcd9338-23"&gt;&lt;/a&gt;&lt;span class="c"&gt;% [bar,foo]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/section&gt;
&lt;/section&gt;</description><guid>http://marianoguerra.org/es/posts/playing-with-lasp-and-crdts/</guid><pubDate>Mon, 01 Jan 2018 16:53:56 GMT</pubDate></item></channel></rss>