Functional programming patterns IN elixir As opposed to Object Oriented design

Ducktyping can work well in functional programming. E.g. take elixirs datetime handling. You can do DateTime.utc_now() |> Time.to_iso8601() and it will work, because the fields Time.to_iso8601 expects are a simple subset of the fields %DateTime{} holds. No need for any inheritance.