Difference between OOP interfaces and FP type classes
stackoverflow.com