This type is very special. The definition in Elm is solely a placeholder, the actual implementation is in native code. You should not think further about this trickery, assuming you want to program Elm, not native-JS-in-the-runtime-of-Elm.
2016-09-21 11:30 GMT+02:00 'Rupert Smith' via Elm Discuss < [email protected]>: > On Tuesday, September 20, 2016 at 4:25:42 PM UTC+1, Rupert Smith wrote: >> >> type Cmd msg = Cmd >> > > I am still a bit perplexed by this. It is a parameterized type, but the > parameter is thrown away and not used. I can only create one of them, since > their is only one constructor. > > Given that, why do I have to use Cmd.none - if the only isntance of Cmd > that can be constructed is Cmd, why not simply use Cmd instead of Cmd.none? > > Does this exist purely to make the commands created by the update function > have a particular type, in order to constrain where and how that update > function can be used? > > If the constructor takes no args, then Cmd must be encapsulating no > context - I kind of thought the commands would be constructed with some > context that tells the program what the command is, or how to execute it. > That is a constructor like this: > > type Cmd msg = Cmd msg > > -- > You received this message because you are subscribed to the Google Groups > "Elm Discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Elm Discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
