> but what you said makes sense on paper

Thats been an issue my whole life. Works well on paper, but …..  :-)

Will work up a PR ASAP.

> On 9 May 2024, at 12:54 PM, José Valim <jose.va...@dashbit.co> wrote:
> 
> Hi Kip, please send a PR. I think this will be easier to see in code but what 
> you said makes sense on paper. :)
> 
> On Thu, May 9, 2024 at 02:19 Kip <kipco...@gmail.com 
> <mailto:kipco...@gmail.com>> wrote:
>> I'm just now implementing the new callbacks for `ex_cldr_calendars` and in 
>> reviewing the implementation for `Calendar.ISO` is strikes me that the whole 
>> implementation, except for one line (see below) depends only on other 
>> calendar callbacks. And therefore could be moved into the `Calendar` module 
>> and used as an implementation for any calendar that implements `Calendar` 
>> behaviour.
>> 
>> This line 
>> <https://github.com/elixir-lang/elixir/blob/main/lib/elixir/lib/calendar/iso.ex#L1564>
>>  would need to change to use `calendar.months_in_year/1` and a few other 
>> calls would need to change to be calendar-referenced to. Moving the code 
>> might also allow centralising the options handling and exceptions - it's a 
>> little unusual for me to see callbacks handling the options validation 
>> rather than the public API.
>> 
>> I am more than happy to submit a PR for this very small refactor (thanks to 
>> the very clean implementation) if this idea is considered to have merit.
>> 
>> 
>> On Saturday, March 9, 2024 at 1:42:34 AM UTC+11 br...@grox.io 
>> <mailto:br...@grox.io> wrote:
>>> The biggest question is if we consider the fields in Duration a unit or 
>>> not. If they are units, then the most consistent choice is to keep them 
>>> singular, to mirror System.time_unit and friends.
>>> 
>>> 
>>> This is the API I prefer: units. IMHO, it is more important to keep 
>>> consistency with Elixir libraries. 
>>> 
>>> -bt
>>> 
>>> On Thu, Mar 7, 2024 at 11:02 PM José Valim <jose....@dashbit.co <>> wrote:
>>>> It is worth noting that Date and friends in Elixir require a calendar 
>>>> field, which is not present in Duration, and therefore Duration won't be 
>>>> usable as Date (and friends).
>>>> 
>>>> The biggest question is if we consider the fields in Duration a unit or 
>>>> not. If they are units, then the most consistent choice is to keep them 
>>>> singular, to mirror System.time_unit and friends.
>>>> 
>>>> On Fri, Mar 8, 2024 at 4:55 AM Kip Cole <kipc...@gmail.com <>> wrote:
>>>>> In my head, a Date.t is semantically a duration. So it’s completely valid 
>>>>> to pass it as a duration to Date.shift as I see it. Which argues for 
>>>>> singular names.
>>>>> 
>>>>> This conversation is a bit like “is a date a point in time or an 
>>>>> interval”. And the answer is yes, depending.
>>>>> 
>>>>> Sent from my iPhone
>>>>> 
>>>>>> On 8 Mar 2024, at 14:39, Sabiwara Yukichi <sabi...@gmail.com <>> wrote:
>>>>>> 
>>>>>> 
>>>>>> I'm personally leaning more towards the plural, because it feels 
>>>>>> semantically more correct to treat a point of time and a duration as 
>>>>>> separate.
>>>>>> 
>>>>>> d.year means the same thing if d is either a date or a datetime, but for 
>>>>>> a duration calling it d.years emphasizes the difference.
>>>>>> 
>>>>>> It could perhaps help catch errors as well, both for the human and the 
>>>>>> compiler.
>>>>>> One (arguably contrived) example would be structurally typed code which 
>>>>>> doesn't enforce any type in particular but uses the dot access or 
>>>>>> partial pattern matches like %{year: ..., month: ...} in order to 
>>>>>> support both dates or datetimes. Passing in a duration wouldn't make 
>>>>>> sense semantically, having different names would make it fail properly.
>>>>>> 
>>>>>> I also agree with other reasons mentioned, the known standard one 
>>>>>> especially.
>>>>>> 
>>>>>> Le jeu. 7 mars 2024 à 16:07, 'Theo Fiedler' via elixir-lang-core 
>>>>>> <elixir-l...@googlegroups.com <>> a écrit :
>>>>>>> Right, it would make using a Duration in combination with the `add/2-3` 
>>>>>>> functions much harder than it needs to be. So far all time units in 
>>>>>>> Elixir are singular, and I think we do gain something from consistently 
>>>>>>> sticking to that, regardless of the context of durations, calendar 
>>>>>>> types and what not.
>>>>>>> 
>>>>>>> I've seen some libraries allowing both, singular and plural, which i 
>>>>>>> dont want to have anything to do with, except for mentioning it though 
>>>>>>> haha.
>>>>>>> 
>>>>>>> What i currently see is:
>>>>>>> 
>>>>>>> Reasons for plural:
>>>>>>> - Known standard across various libraries and programming languages
>>>>>>> - Sounds natural, to shift a date by "3 months" instead of "3 month".
>>>>>>> 
>>>>>>> Reasons for singular:
>>>>>>> - Compatible with time units already defined in Elixir (also relevant 
>>>>>>> for extending the use of Duration later on)
>>>>>>> - Reduced cognitive load as the time units are always spelled the same 
>>>>>>> regardless of the context
>>>>>>> 
>>>>>>> The reasons for singular do outweigh the reasons for plural, so unless 
>>>>>>> we're making some very strong points for diverging from that, let's 
>>>>>>> keep it singular!
>>>>>>> 
>>>>>>> On Thursday, March 7, 2024 at 7:39:15 AM UTC+1 José Valim wrote:
>>>>>>>> Compatibility with the other time units is an important point. My mind 
>>>>>>>> is back on singular again. :)
>>>>>>>> 
>>>>>>>> On Thu, Mar 7, 2024 at 07:20 'Theo Fiedler' via elixir-lang-core 
>>>>>>>> <elixir-l...@googlegroups.com <>> wrote:
>>>>>>>>> While i was strongly leaning towards singular, i understand why one 
>>>>>>>>> would expect plural. Given that seems to be pretty standard in wild, 
>>>>>>>>> i am fine changing it as well.
>>>>>>>>> 
>>>>>>>>> What mostly put me off about was that we'd end up with `Time.add(t, 
>>>>>>>>> 3, :minute)` vs `Time.shift(t, minutes: 3)`, which after all, maybe 
>>>>>>>>> isn't too bad, as we can keep the plural keys exclusive to durations. 
>>>>>>>>> Another reason for going with plurals is that it _should_ make 
>>>>>>>>> migrating from some libraries to the standard library relatively 
>>>>>>>>> straight forward (with the exception of microseconds).
>>>>>>>>> 
>>>>>>>>> On Wednesday, March 6, 2024 at 11:07:52 PM UTC+1 José Valim wrote:
>>>>>>>>>> After a quick glance on other programming languages, it seems 
>>>>>>>>>> Python, Java, Rust, and C# all have plural names. Erlang also uses 
>>>>>>>>>> plural in its helper functions in the timer module. So we might want 
>>>>>>>>>> to follow suit.
>>>>>>>>>> 
>>>>>>>>>> On Wed, Mar 6, 2024 at 23:03 José Valim <jose....@dashbit.co <>> 
>>>>>>>>>> wrote:
>>>>>>>>>>> We discussed plural vs singular and settled on singular so it 
>>>>>>>>>>> mirrors the calendar types.  Thoughts?
>>>>>>>>>>> 
>>>>>>>>>>> On Wed, Mar 6, 2024 at 23:01 Panagiotis Nezis <pne...@gmail.com <>> 
>>>>>>>>>>> wrote:
>>>>>>>>>>>> +1 for this, awesome work Theo. Shifting dates/timestamps is such 
>>>>>>>>>>>> a common operation and a standard implementation would be 
>>>>>>>>>>>> beneficial for everybody.
>>>>>>>>>>>> 
>>>>>>>>>>>> PS. I would expect plural in the duration fields. 
>>>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>>>> On Wed, Mar 6, 2024 at 8:23 PM José Valim <jose....@dashbit.co <>> 
>>>>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>>>>> The main argument for having it in core is:
>>>>>>>>>>>>> 
>>>>>>>>>>>>>   * It integrates directly with the Calendar behaviour
>>>>>>>>>>>>>   * We could provide built-in sigils in the future to create 
>>>>>>>>>>>>> readable durations, such as ~P[3 hours and 10 minutes]
>>>>>>>>>>>>>   * Postgrex, Explorer, CLDR, etc all implement their own version 
>>>>>>>>>>>>> of durations
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Arguments for not having it in core: it happens that all of the 
>>>>>>>>>>>>> arguments above can also be solved without adding Duration to 
>>>>>>>>>>>>> Elixir and, instead, by creating a custom library:
>>>>>>>>>>>>> 
>>>>>>>>>>>>>   * A separate library could extend the calendar behaviour with 
>>>>>>>>>>>>> shift_* functions
>>>>>>>>>>>>>   * Third-party sigils can also be provided by libraries
>>>>>>>>>>>>>   * Postgrex, Explorer, and CLDR could create or use a package 
>>>>>>>>>>>>> with a duratio type shared across them all
>>>>>>>>>>>>> 
>>>>>>>>>>>>> I would love to hear the community thoughts.
>>>>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>>>>> On Wed, Mar 6, 2024 at 7:16 PM 'Theo Fiedler' via 
>>>>>>>>>>>>> elixir-lang-core <elixir-l...@googlegroups.com <>> wrote:
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>>>>>> Preface
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> We currently have `add/2-3` to manipulate calendar types in the 
>>>>>>>>>>>>>> standard library. These functions allow adding a specified 
>>>>>>>>>>>>>> amount of time of given unit to a date/time. The standard 
>>>>>>>>>>>>>> library currently misses means to apply more complex, or logical 
>>>>>>>>>>>>>> durations to calendar types. e.g. adding a month, a week, or one 
>>>>>>>>>>>>>> month and 10 days to a date.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Reasons for it
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> While similar functionality exists in libraries, such as CLDR, 
>>>>>>>>>>>>>> Timex, Tox, adding this functionality to the standard library 
>>>>>>>>>>>>>> has already been requested and discussed at multiple occasions 
>>>>>>>>>>>>>> over the past years. To list a few examples:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> - https://github.com/elixir-lang/elixir/pull/10199
>>>>>>>>>>>>>> - 
>>>>>>>>>>>>>> https://elixirforum.com/t/get-date-n-months-years-in-the-past/48346/3
>>>>>>>>>>>>>> - 
>>>>>>>>>>>>>> https://elixir-lang.slack.com/archives/C0HEX82NR/p1709581478427009?thread_ts=1709368588.334759&cid=C0HEX82NR
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Furthermore the shift behaviour in the extremely popular library 
>>>>>>>>>>>>>> Timex changed <https://github.com/bitwalker/timex/issues/731> in 
>>>>>>>>>>>>>> Elixir >= 1.14.3 which may have complicated the mostly lean and 
>>>>>>>>>>>>>> non-breaking language upgrade Elixir has to offer.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Elixir has a great set of modules and functions that deal with 
>>>>>>>>>>>>>> date and time, the APIs are consistent and `shift/2-3` should 
>>>>>>>>>>>>>> fit right in, solving many standard needs of various industries, 
>>>>>>>>>>>>>> be it for reporting, appointments, events, finance... the list 
>>>>>>>>>>>>>> goes on, engineers probably face the need to shift time 
>>>>>>>>>>>>>> logically more often than not in their careers.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Technical details
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Duration
>>>>>>>>>>>>>> A date or time must be shifted by a duration. There is an 
>>>>>>>>>>>>>> ISO8601 for durations 
>>>>>>>>>>>>>> <https://en.wikipedia.org/wiki/ISO_8601#Durations>, which the 
>>>>>>>>>>>>>> initial implementation is loosely following. The structure of a 
>>>>>>>>>>>>>> Duration lives in its own module with its own set of functions 
>>>>>>>>>>>>>> to create and manipulate durations. One example of where it 
>>>>>>>>>>>>>> diverts from the ISO standard, is that it implements 
>>>>>>>>>>>>>> microseconds. Microseconds in a duration are stored in the same 
>>>>>>>>>>>>>> format as in the time calendar types, meaning they integrate 
>>>>>>>>>>>>>> well and provide consistency.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Shift
>>>>>>>>>>>>>> The shift behaviour is implemented as a callback on Calendar and 
>>>>>>>>>>>>>> supported by all calendar types: Date, DateTime, NaiveDateTime 
>>>>>>>>>>>>>> and Time. Date, Time and NaiveDateTime each have their own 
>>>>>>>>>>>>>> implementation of a "shift", while DateTime gets converted to a 
>>>>>>>>>>>>>> NaiveDateTime before applying the shift, and is then rebuilt to 
>>>>>>>>>>>>>> a DateTime in its original timezone. `shift/2-3` also has 
>>>>>>>>>>>>>> guaranteed output types (which isn't a given in many libraries) 
>>>>>>>>>>>>>> and follows the consistent API which is established in the 
>>>>>>>>>>>>>> calendar modules.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Find the current state of the implementation here: 
>>>>>>>>>>>>>> https://github.com/elixir-lang/elixir/pull/13385
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Benchmarks
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> There are some benchmarks + StreamData tests in the PR 
>>>>>>>>>>>>>> description.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Outlook
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> After  adding the Duration type and shift behaviour to the 
>>>>>>>>>>>>>> standard library, the following things could be explored and 
>>>>>>>>>>>>>> derived from the initial work:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Implementing a protocol that allows Duration to be applied to 
>>>>>>>>>>>>>> any data type, not just dates and times.
>>>>>>>>>>>>>> A range-like data type that allows us to do recurring constructs 
>>>>>>>>>>>>>> on any data type. For example, Duration.interval(~D[2000-01-01], 
>>>>>>>>>>>>>> month: 1), when iterated, would emit {:ok, date} | {:error, 
>>>>>>>>>>>>>> start, duration, reason} entries
>>>>>>>>>>>>>> A sigil for easy creation of durations: ~P[3 hours and 10 
>>>>>>>>>>>>>> minutes]
>>>>>>>>>>>>>> Making it so add/2-3 reuses the shift_* functions
>>>>>>>>>>>>>> Reasons against it
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> While I am convinced that adding `shift/2-3` to the standard 
>>>>>>>>>>>>>> library would be very beneficial, nothing really speaks against 
>>>>>>>>>>>>>> the points mentioned above to be implemented in a library 
>>>>>>>>>>>>>> instead. However, something as crucial and central as date/time 
>>>>>>>>>>>>>> manipulation should still be part of the standard library, 
>>>>>>>>>>>>>> negating the risk of breaking changes, inconsistent behaviour 
>>>>>>>>>>>>>> and outdated or too unique ergonomics which aren't widely 
>>>>>>>>>>>>>> applicable, unlike what should be part of the standard library.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Many thanks to @jose & @kip for the initial reviews and everyone 
>>>>>>>>>>>>>> in advance taking the time to read the proposal!
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Looking forward to hear other peoples ideas and opinions on the 
>>>>>>>>>>>>>> subject!
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> -- 
>>>>>>>>>>>>>> You received this message because you are subscribed to the 
>>>>>>>>>>>>>> Google Groups "elixir-lang-core" group.
>>>>>>>>> 
>>>>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from 
>>>>>>>>>>>>>> it, send an email to elixir-lang-co...@googlegroups.com <>.
>>>>>>>>>>>>>> To view this discussion on the web visit 
>>>>>>>>>>>>>> https://groups.google.com/d/msgid/elixir-lang-core/cb0ed628-3848-4de0-aa13-c0f4761e4d99n%40googlegroups.com
>>>>>>>>>>>>>>  
>>>>>>>>>>>>>> <https://groups.google.com/d/msgid/elixir-lang-core/cb0ed628-3848-4de0-aa13-c0f4761e4d99n%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> -- 
>>>>>>>>>>>>> You received this message because you are subscribed to the 
>>>>>>>>>>>>> Google Groups "elixir-lang-core" group.
>>>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>>>>>>>>> send an email to elixir-lang-co...@googlegroups.com <>.
>>>>>>>>>>>>> To view this discussion on the web visit 
>>>>>>>>>>>>> https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4%2BNmFsMhbkRubMjnmM8c_Amq8DgmKCJtzJ1GEuM4-sVgw%40mail.gmail.com
>>>>>>>>>>>>>  
>>>>>>>>>>>>> <https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4%2BNmFsMhbkRubMjnmM8c_Amq8DgmKCJtzJ1GEuM4-sVgw%40mail.gmail.com?utm_medium=email&utm_source=footer>.
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> -- 
>>>>>>>>>>>> You received this message because you are subscribed to the Google 
>>>>>>>>>>>> Groups "elixir-lang-core" group.
>>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>>>>>>>> send an email to elixir-lang-co...@googlegroups.com <>.
>>>>>>>>>>>> To view this discussion on the web visit 
>>>>>>>>>>>> https://groups.google.com/d/msgid/elixir-lang-core/CAPxxbtjvFwnMXe134RR8wjnYk%2Bm-%2BF%2BO_79dWKk3G-bt99Ln%2Bw%40mail.gmail.com
>>>>>>>>>>>>  
>>>>>>>>>>>> <https://groups.google.com/d/msgid/elixir-lang-core/CAPxxbtjvFwnMXe134RR8wjnYk%2Bm-%2BF%2BO_79dWKk3G-bt99Ln%2Bw%40mail.gmail.com?utm_medium=email&utm_source=footer>.
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> -- 
>>>>>>>>> You received this message because you are subscribed to the Google 
>>>>>>>>> Groups "elixir-lang-core" group.
>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>>>>> send an email to elixir-lang-co...@googlegroups.com <>.
>>>>>>>> 
>>>>>>>>> To view this discussion on the web visit 
>>>>>>>>> https://groups.google.com/d/msgid/elixir-lang-core/3a82f501-cc62-409c-a653-d4b6e5943407n%40googlegroups.com
>>>>>>>>>  
>>>>>>>>> <https://groups.google.com/d/msgid/elixir-lang-core/3a82f501-cc62-409c-a653-d4b6e5943407n%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>>>>>> 
>>>>>>> 
>>>>>>> -- 
>>>>>>> You received this message because you are subscribed to the Google 
>>>>>>> Groups "elixir-lang-core" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>>>>> an email to elixir-lang-co...@googlegroups.com <>.
>>>>>>> To view this discussion on the web visit 
>>>>>>> https://groups.google.com/d/msgid/elixir-lang-core/786f6323-7f47-44dc-8438-8a6fc94737afn%40googlegroups.com
>>>>>>>  
>>>>>>> <https://groups.google.com/d/msgid/elixir-lang-core/786f6323-7f47-44dc-8438-8a6fc94737afn%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>>>>> 
>>>>>> 
>>>>>> -- 
>>>>>> You received this message because you are subscribed to the Google 
>>>>>> Groups "elixir-lang-core" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>>>> an email to elixir-lang-co...@googlegroups.com <>.
>>>>>> To view this discussion on the web visit 
>>>>>> https://groups.google.com/d/msgid/elixir-lang-core/CANnyohYGR832XTg9SawCtat3NKxJVMu%3D7KW%3D8VJ7fTCjQro8Eg%40mail.gmail.com
>>>>>>  
>>>>>> <https://groups.google.com/d/msgid/elixir-lang-core/CANnyohYGR832XTg9SawCtat3NKxJVMu%3D7KW%3D8VJ7fTCjQro8Eg%40mail.gmail.com?utm_medium=email&utm_source=footer>.
>>>>> 
>>>>> 
>>>>> -- 
>>>>> You received this message because you are subscribed to the Google Groups 
>>>>> "elixir-lang-core" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send an 
>>>>> email to elixir-lang-co...@googlegroups.com <>.
>>>>> To view this discussion on the web visit 
>>>>> https://groups.google.com/d/msgid/elixir-lang-core/5C8C67FE-2A5D-4375-B316-B49727955084%40gmail.com
>>>>>  
>>>>> <https://groups.google.com/d/msgid/elixir-lang-core/5C8C67FE-2A5D-4375-B316-B49727955084%40gmail.com?utm_medium=email&utm_source=footer>.
>>>> 
>>>> 
>>>> -- 
>>>> You received this message because you are subscribed to the Google Groups 
>>>> "elixir-lang-core" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send an 
>>>> email to elixir-lang-co...@googlegroups.com <>.
>>> 
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4K00prM7KsJ47mcc2MwL2ttz%2BNOpHp6WUt9PEPQa2gK4A%40mail.gmail.com
>>>>  
>>>> <https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4K00prM7KsJ47mcc2MwL2ttz%2BNOpHp6WUt9PEPQa2gK4A%40mail.gmail.com?utm_medium=email&utm_source=footer>.
>>> 
>> 
>>> 
>>> -- 
>>> 
>>> Regards,
>>> Bruce Tate
>>> CEO
>>> 
>>>  
>>> <https://bowtie.mailbutler.io/tracking/hit/f8218219-d2a8-4de4-9fef-1cdde6e723f6/c7c97460-016e-45fb-a4ab-0a70318c7b97>
>>> 
>>> Groxio, LLC.
>>> 512.799.9366 <tel:(512)%20799-9366>
>>> br...@grox.io <>
>>> grox.io <http://grox.io/>
>> 
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "elixir-lang-core" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to elixir-lang-core+unsubscr...@googlegroups.com 
>> <mailto:elixir-lang-core+unsubscr...@googlegroups.com>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/elixir-lang-core/ef317fb5-5b37-4bbd-9cb3-a290919468b9n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/elixir-lang-core/ef317fb5-5b37-4bbd-9cb3-a290919468b9n%40googlegroups.com?utm_medium=email&utm_source=footer>.
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "elixir-lang-core" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to elixir-lang-core+unsubscr...@googlegroups.com 
> <mailto:elixir-lang-core+unsubscr...@googlegroups.com>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4JvYKuoCPBa7-sak3rUJ%2B0dsStVrEF2bZ6FXGkU6o2szQ%40mail.gmail.com
>  
> <https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4JvYKuoCPBa7-sak3rUJ%2B0dsStVrEF2bZ6FXGkU6o2szQ%40mail.gmail.com?utm_medium=email&utm_source=footer>.

-- 
You received this message because you are subscribed to the Google Groups 
"elixir-lang-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elixir-lang-core+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elixir-lang-core/4661A5CB-C518-4769-ADD1-5C7D49BE86C9%40gmail.com.

Reply via email to