Delayed model update for transition effects in Elm.
An extensible record type containing the transition status
Initialize the transition. The returned effect is carrying the exit action, holding the desired model update to be done and the transition delay (before and after the model update)
Update the transition status, and apply the desired model update when it's time to. Returns the updated model and the effect carrying the next transition action.
Helper for the views: class name with CSS transition
A type for transition steps