TL;DR

異なる型を、別の型との共通の型にアップキャストすること。英語では Lift up と呼ぶ。

例

Domain Modeling Made Functional では、F# の Result を返す関数をつなぐときに使う。型の異なるエラーを返す関数は、そのままではつなげない。そこで共通の選択型を作り、Result.mapError で各関数のエラーをその型に持ち上げる。

FSharp.Core のドキュメントによると、Result.mapError は Error の値にだけ関数を適用し、Ok の値はそのまま返す。

Ok 1 |> Result.mapError (fun x -> "bar") // Ok 1
Error "foo" |> Result.mapError (fun x -> "bar") // Error "bar"

関連

出典