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.