open Fnm; let colorizeVersions = (~current, ~versions) => { let strings = versions |> List.map(version => { open Versions.Local; let str = "- " ++ version.name; let color = current |> Opt.bind(current => current.name == version.name ? Some(Pastel.Green) : None ); str ; }); "## List of installed versions:\n" ...strings ; }; let getVersionsString = () => Result.( { let%bind versions = Versions.getInstalledVersions() |> Result.map(Array.to_list); let current = Versions.getCurrentVersion(); colorizeVersions(~current, ~versions) |> Result.return; } ); let run = () => getVersionsString() |> Result.map(Console.log) |> Lwt.return;