Write about implementation in haskell and coq