As mentioned in some recent threads [1] [2], easing functions for
animations have been an example of where functions in the model are
currently used.  An alternative approach is to use a union type to indicate
the easing, but a suggested shortcoming of that approach is that there
would then be no way for downstream developers to use their own custom
easings.

I was just thinking that this could be achieved as follows:

```
type AdvancedEasing a
    = Linear | InQuad | OutQuad | ...
    | CustomEasing a

type alias Easing = AdvancedEasing Never

apply : Easing -> Float -> Float

applyAdvanced : (a -> Float -> Float) -> AdvancedEasing a -> Float -> Float
```

In this way, the custom easing functions (a -> Float -> Float) are moved
from the model to configuration.

I was curious if anyone has experimented with this approach yet.


[1]: https://groups.google.com/d/topic/elm-discuss/bOAHwSnklLc/discussion
[2]: https://groups.google.com/d/topic/elm-discuss/9qV9iDcv-c8/discussion

-- 
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 elm-discuss+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to