haskellのようなオブジェクト指向じゃない言語でも結局オブジェクト指向と同等のことをできるようにするために四苦八苦してる