fsprojects / Chessie

Railway-oriented programming for .NET
http://fsprojects.github.io/Chessie/
The Unlicense
188 stars 43 forks source link

mergeMessages uses inconsistent ordering #52

Open generalelectrix opened 7 years ago

generalelectrix commented 7 years ago

Description

mergeMessages appends messages for error but prepends them for success

Expected behavior

mergeMessages should be consistent; IMHO it should always append them, as this is merging messages into an existing Result stream.

    let inline mergeMessages msgs result = 
        let inline fSuccess (x, msgs2) = Ok(x, msgs @ msgs2) // prepends
        let inline fFailure errs = Bad(errs @ msgs) // appends
        either fSuccess fFailure result