That would be the library I started writing that I was looking for an alternative to finishing :D
Guess I should finish it! On Mon, 26 Feb 2018, 22:02 OvermindDL1, <[email protected]> wrote: > So something more like https://github.com/lpil/sum or so (undocumented, > but it looks right, it's the first thing I found via a github search). > > There is one specific one I'm thinking of but can't for the life of me > remember it's name... I wish hex.pm had the ability to search module and > function names in a libraries public API... >.> > > Either way, it's not hard to write a library to support it though. :-) > > > On Sunday, February 25, 2018 at 9:58:44 AM UTC-7, Louis Pop wrote: > >> If I recall correctly this library wraps the values and does not offer >> compile time checks, which is the inverse of what I'm after. >> >> I want unwrapped values and compile time checks :) >> >> Cheers, >> Louis >> >> On Sun, 25 Feb 2018, 16:00 OvermindDL1, <[email protected]> wrote: >> > There are at least 2 others that I know of, and I can find those for you >>> too tomorrow if you want them, they have different features and focuses, >>> but the one that immediately comes to mind is: >>> https://github.com/expede/algae >>> >>> Expede on GitHub has a lot of cool and useful little 'core' elixir >>> libraries in my opinion. >>> >>> On Feb 24, 2018 06:46, "Louis Pilfold" <[email protected]> wrote: >>> >> Hi >>>> >>>> I started to implement such a library, but I would much prefer to use >>>> an existing one. I was unable to find any, wild you be able to share some >>>> links? >>>> >>>> Thanks, >>>> Louis >>>> >>>> On Fri, 23 Feb 2018, 18:09 OvermindDL1, <[email protected]> wrote: >>>> >>> There are some library that add sum types to Elixir that do 'some' >>>>> compile-time checks (like case's and so forth). It would be useful built >>>>> in to elixir (though not any of the current library implementations) but >>>>> the libraries already do support much of it. >>>>> >>>>> >>>>> On Friday, February 16, 2018 at 6:35:03 AM UTC-7, Ben Wilson wrote: >>>>>> >>>>>> Can you elaborate on the safety provided by doing `%Struct{} = ` on a >>>>>> function? There are no compile time checks that calls to that function >>>>>> are >>>>>> actually of that struct type, just runtime checks on the data. Put >>>>>> another >>>>>> way this isn't really a type check, but an assertion. >>>>>> >>>>>> On Friday, February 16, 2018 at 6:38:07 AM UTC-5, >>>>>> [email protected] wrote: >>>>>>> >>>>>>> Hey Louis, >>>>>>> >>>>>>> I think it should include compile time checks. Mostly I would expect >>>>>>> those for function headers, case blocks and with blocks. >>>>>>> >>>>>>> Dialyzer already checks many of those conditions, but I would like >>>>>>> to go a step further. >>>>>>> Your mentioned library looks really interesting. Making it work >>>>>>> together with existing type specifications would be really cool. >>>>>>> >>>>>>> With for example structs, I can achieve safety really easy by adding >>>>>>> *%Struct{} >>>>>>> = my_input* to the function header. >>>>>>> >>>>>>> I would like to have a mechanism that works similarly, but >>>>>>> additionally checks uncovered types of a sum. (If you would for example >>>>>>> not >>>>>>> cover the None of a Maybe) >>>>>>> >>>>>>> I think that this could tremendously improve the code quality. >>>>>>> >>>>>>> Cheers, >>>>>>> Jony >>>>>>> >>>>>>> Am Freitag, 16. Februar 2018 11:57:00 UTC+1 schrieb Louis Pilfold: >>>>>>>> >>>>>>>> Hey Jony >>>>>>>> >>>>>>>> Would this involve some form of compile time type checking for >>>>>>>> these values? If not we already have them in the form of tuples. >>>>>>>> >>>>>>>> @type result :: {:ok, string()} | {:error, string()} >>>>>>>> >>>>>>>> If you want compile time checks this would be more difficult. I've >>>>>>>> experimented a little with compile time checks with macros, check it >>>>>>>> out >>>>>>>> here -> https://github.com/lpil/sum >>>>>>>> >>>>>>>> Cheers, >>>>>>>> Louis >>>>>>>> >>>>>>>> On Fri, 16 Feb 2018 at 10:33 <[email protected]> wrote: >>>>>>>> >>>>>>>>> Hi all, >>>>>>>>> >>>>>>>>> First I want to thank you all for your great work on the elixir >>>>>>>>> language! >>>>>>>>> >>>>>>>>> Have there been some thoughts to introduce Tagged Unions into >>>>>>>>> elixir? >>>>>>>>> I would really love to use sum types like Either or simple enums >>>>>>>>> in my daily work and have some support of the language in handling >>>>>>>>> them. >>>>>>>>> >>>>>>>>> What do you think about this? >>>>>>>>> >>>>>>>>> Cheers, >>>>>>>>> Jony >>>>>>>>> >>>>>>>>> -- >>>>>>>>> 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 [email protected]. >>>>>>>>> To view this discussion on the web visit >>>>>>>>> https://groups.google.com/d/msgid/elixir-lang-core/4052d8d9-6eda-46c9-b259-fb0f2e041120%40googlegroups.com >>>>>>>>> <https://groups.google.com/d/msgid/elixir-lang-core/4052d8d9-6eda-46c9-b259-fb0f2e041120%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>> . >>>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>>> >>>>>>>> -- >>>>> 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 [email protected]. >>>>> >>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/elixir-lang-core/d1ac20e5-9198-47d1-91c4-cf6d6b0e733a%40googlegroups.com >>>>> <https://groups.google.com/d/msgid/elixir-lang-core/d1ac20e5-9198-47d1-91c4-cf6d6b0e733a%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> -- >>>> 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 [email protected]. >>>> >>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/elixir-lang-core/CABu8xFC0kWY2ncPW0tm5MbyMj8WFa%2BD2v6bBamdB-1fyk7qu5A%40mail.gmail.com >>>> <https://groups.google.com/d/msgid/elixir-lang-core/CABu8xFC0kWY2ncPW0tm5MbyMj8WFa%2BD2v6bBamdB-1fyk7qu5A%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>> . >>> >>> >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> -- >>> 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 [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/elixir-lang-core/CAJhqboFaJ1Nww0HwsBxrwu1%2Bhxhg0u-v2ZY7%2BF975A21O9Q6KQ%40mail.gmail.com >>> <https://groups.google.com/d/msgid/elixir-lang-core/CAJhqboFaJ1Nww0HwsBxrwu1%2Bhxhg0u-v2ZY7%2BF975A21O9Q6KQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> -- > 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 [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/elixir-lang-core/08478144-9690-43e0-a41b-3123c1a7f854%40googlegroups.com > <https://groups.google.com/d/msgid/elixir-lang-core/08478144-9690-43e0-a41b-3123c1a7f854%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-core/CABu8xFD%3D98vfU%2BeYTpsQXSCgzghF%3DSKJ2ML%3DfDP_v7uiw-5bVw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
