• [^] # Re: deux solutions :

    Posté par . En réponse au message Haskell : simplifier 2 "case" imbriqués. Évalué à 2.

    Honte à moi, j'ai pas vu la jolie solution que tu suggérais pourtant :

    main :: IO ()
    main = (liftM2 . liftM2) f (parseCSVFromFile "laposte_hexasmal.csv") (parseCSVFromFile "listing.csv")
     >>= either (error . show) putStrLn

    Pas du tout besoin de transformeurs, c'est même pas monadique en fait, c'est juste applicatif.
    (tes valeurs sont sont encapsulées deux fois, dans (Either ErrorBidule), puis dans IO. Ta fonction f à deux parametre peut être liftée une fois pour travailler sur Either ErrorBidule, et une seconde fois pour travailler sur IO.