`{: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.