Lamblichus is a elixir macro for implemented functor, like in haskell
State machine library for Elixir