Dealing with binary data has always been a pickle in OOP language. Pattern matching is very fundamental to Elixir making the functions much more descriptive. I was very pleased to see that the pattern matching was not just limited to tuple, list etc. but extended to binary data as well.
Disclaimer: I dont claim to completely understand what monads are as I am still learning more about them but this is my attempt to explain it how I understand it. Please correct me (in comments) if I got something wrong Story time In my last post [https://zohaib.me/railway-programming-pattern-in-elixir/