are there some cannonical way to implement FSM in haskell ? anything funny with combinators ? erlang got some, but relying on message passing. for Tab : state SA->state SB, T bc : state SB->state SC SA()-> receive Tab -> SB() end. SB()->receive Tbc->SC() end. any way to avoid declaring state as Type ? ie some kind of generic state machine ?