/hall/Cabal/buildVersionRange
Copy path to clipboardExamples
buildVersionRange ([] : List Pvp.Version) ≡ ""
buildVersionRange
[ Pvp.v [ 4, 18, 0 ], Pvp.v [ 4, 19, 2 ], Pvp.v [ 5, 0, 0 ] ]
≡ "^>= {4.18.0, 4.19.2, 5.0.0}"
Source
{-| Turns a list of dependency versions into a Cabal-style dependency range.
-}
let P =
https://prelude.dhall-lang.org/v20.1.0/package.dhall
sha256:26b0ef498663d269e4dc6a82b0ee289ec565d683ef4c00d0ebdd25333a5a3c98
let Pvp = ../PVP/package.dhall
let buildVersionRange =
λ(versions : List Pvp.Version) →
if P.List.null Pvp.Version versions
then ""
else "^>= {"
++ ( List/fold
Pvp.Version
versions
{ comma : Bool, res : Text }
( λ(v : Pvp.Version) →
λ(acc : { comma : Bool, res : Text }) →
{ comma = True
, res =
Pvp.show v
++ (if acc.comma then ", " else "")
++ acc.res
}
)
{ comma = False, res = "" }
).res
++ "}"
: Text
let example0 = assert : buildVersionRange ([] : List Pvp.Version) ≡ ""
let example1 =
assert
: buildVersionRange
[ Pvp.v [ 4, 18, 0 ], Pvp.v [ 4, 19, 2 ], Pvp.v [ 5, 0, 0 ] ]
≡ "^>= {4.18.0, 4.19.2, 5.0.0}"
in buildVersionRange