Interesting - the link actually states pattern matching is done on fields 
not records - that might explain the confusion.

On Monday, 30 January 2017 02:05:52 UTC, Joey Eremondi wrote:
>
> Yep. Sorry for the terminology confusion, I use Constructor (what they 
> call them in Haskell) and tag interchangeably, I probably shouldn't.
>
> So, when you do
>   "type Foo = Bar ... | Baz ..."
> You get a tag. The tag can be used to construct Foos, as a function, or to 
> destruct them, in a "case ... of " expression.
>
> When you do
>   "type alias Rec = {x : ..., y : ..., ...}"
> where the type on the right is a record, then you can use Rec as a 
> shorthand for (\x y ... -> {x : x, y : y, ...}), that is, it takes the 
> arguments in the order you specified fields in the type alias. But, I guess 
> you can't pattern match on things using this syntactic sugar.
>
> It is still possible to pattern match on a record, you can see how to do 
> that here: http://elm-lang.org/docs/syntax#records
>
> On Sun, Jan 29, 2017 at 3:58 PM, jadski <[email protected] <javascript:>> 
> wrote:
>
>> That suggests either the compiler distinguishes between implicit & 
>> explicit declarations, or constructors and tags are treated differently (my 
>> money's on the latter).
>>
>> On Sunday, 29 January 2017 23:25:25 UTC, Joey Eremondi wrote:
>>>
>>> This is certainly a case where the message could be better, perhaps we 
>>> should log it at https://github.com/elm-lang/error-message-catalog if 
>>> something similar is not already there.
>>>
>>> Types and expressions (including Constructors) are in different 
>>> namespaces. So while there is a Type named Response, there's no Constructor 
>>> named Response, which is what the compiler is looking for in the pattern 
>>> match.
>>>
>>> What's confusing (to me) is that, when you do "type alias Foo = {field1, 
>>> field2...}", usually it generates a fake pseudo-constructor that lets you 
>>> make a record without naming fields, i.e. as "Foo x y...". But I guess 
>>> you're not allowed to pattern match with it?
>>>
>>> On Sun, Jan 29, 2017 at 3:08 PM, jadski <[email protected]> wrote:
>>>
>>>> Though I still don't understand why the compiler says Http does not 
>>>> expose Response - that contradicts the code?
>>>>
>>>> -- 
>>>> 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] <javascript:>.
>> 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.

Reply via email to