Here is a complete specification of a state machine's transitions:
f LightOff OnPressed = LightOnDimmed
f LightOnDimmed OnPressed = LightOnMedium
f LightOnDimmed OffPressed = LightOff
f LightOnMedium OnPressed = LightOnBright
f LightOnMedium OffPressed = LightOff
f LightOnBright OnPressed = LightOnDimmed
f LightOnBright OffPressed = LightOff
Here is a Haskell function which models the above state machine's transitions: f LightOff OnPressed = LightOnDimmed
f LightOnDimmed OnPressed = LightOnMedium
f LightOnDimmed OffPressed = LightOff
f LightOnMedium OnPressed = LightOnBright
f LightOnMedium OffPressed = LightOff
f LightOnBright OnPressed = LightOnDimmed
f LightOnBright OffPressed = LightOff