`{:ok, t} | {:error, any}` is more like `result(t, any)` than `maybe(t)`.
I'd define `maybe(t)` as `t | :nothing`

On Wed, Feb 28, 2018 at 10:50 AM, Austin Ziegler <halosta...@gmail.com>
wrote:

> Whenever I end up defining an `maybe(t)` typespec, I always use it for
> tagged tuples (`@type maybe(t) :: {:ok, t} | {:error, any}`), although I
> might be more specific in that `any`, although I’ve found myself defining a
> `result` typespec for a module far more often (because most of the
> functions in the module return the same or similar values).
>
> I think what’s being described here is closer to `option(t)`, so `@type
> option(t) :: t | nil` (although that’s also a tagged value in Rust, but `t
> | nil` seems closer to the spirit of `option` than `maybe`).
>
> -a
>
> On Wed, Feb 28, 2018 at 9:43 AM, Ben Wilson <benwilson...@gmail.com>
> wrote:
>
>> Is nillable(String.t) less boilerplate than String.t | nil ?
>>
>> On Wednesday, February 28, 2018 at 9:12:42 AM UTC-5, Yordis Prieto wrote:
>>>
>>> I am more interested on the solution of `nil | t` I dont mind changing
>>> the name to `nillable(t)` or whichever other word in English.
>>>
>>> The needs come from Ecto schemas and most of the struct fields will be
>>> nillable(t), I thought it would be good to have something that represent
>>> that common use case.
>>>
>>> On Tuesday, February 27, 2018 at 4:11:39 AM UTC-8, Yordis Prieto wrote:
>>>>
>>>> Introducing `maybe(t)` it will reduce the boilerplate code for `nil |
>>>> something`
>>>>
>>>> It is more convenience to write it this way, at least for me.
>>>>
>>>> What are your thoughts about it?
>>>>
>>> --
>> 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/ms
>> gid/elixir-lang-core/c0d589bc-951d-4b5d-afef-d652d8a84310%
>> 40googlegroups.com
>> <https://groups.google.com/d/msgid/elixir-lang-core/c0d589bc-951d-4b5d-afef-d652d8a84310%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> --
> Austin Ziegler • halosta...@gmail.com • aus...@halostatue.ca
> http://www.halostatue.ca/http://twitter.com/halostatue
>
> --
> 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/CAJ4ekQs-EVcx95hc0vUZrFuatOcG7fq11_
> uaV7Y4phgkZP3%3DnA%40mail.gmail.com
> <https://groups.google.com/d/msgid/elixir-lang-core/CAJ4ekQs-EVcx95hc0vUZrFuatOcG7fq11_uaV7Y4phgkZP3%3DnA%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Josh Adams

-- 
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/CAA1-O0z6p2QrbTheU8boEJ%3Dn8MnwE8qCTVPtUCgF124RLCvd5Q%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to