You could try elm-generic-dict to have arbitrary keys in dicts.

On Monday, January 16, 2017 at 6:31:28 AM UTC-8, Austin Bingham wrote:
>
> Ah ha! That bit of syntax is exactly what I was looking for. That get's me 
> a lot of what I was hoping for.
>
> Regarding the use of helper functions, I agree in principle. But in my 
> particular case, at least, I think it's mostly an academic issue. I want to 
> distinguish between various "classes" of strings using the type system, but 
> mostly all I do with them is store them and use them as keys. 
>
> One interesting issue I've run into is the use of single-contructor unions 
> as e.g. the key-type in a dict. As far as I can tell, I can't do something 
> like this:
>
>     type Foo = Foo String
>     type alias FooDict = Dict Foo String
>
> because Foo isn't "comparable" and can't be made so. Is there some way to 
> do this, or is this just a limitation of elm?
>
> On Monday, January 16, 2017 at 2:49:46 PM UTC+1, Ian Mackenzie wrote:
>>
>> I agree with the point about adding helper functions for your data type 
>> so you can treat it as opaque in most places. For the rest, though, you can 
>> also use the slightly obscure 'as' syntax 'foo ((Foo s) as f) = ...' which 
>> allows you to use both 's' and 'f' in your function body (with the 
>> additional bonus of avoiding an extra object allocation).
>
>

-- 
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