f# - 解决类似泛型类型的运算符冲突

标签 f#

我正在使用定义标准绑定(bind)运算符的第三方库 (Sauve.IO) >>= :

 val inline (>>=) : first:('T -> Async<'U option>) -> second:('U -> Async<'V option>) -> input:'T -> Async<'V option>

我还有一个内部库,它也想在类型签名上定义运算符

Async<Response<'a>> -> ('a -> Async<Response<'b>>) -> Async<Response<'b>>

在不违反内联函数重载限制的情况下,在同一个命名空间/模块中使用这两个函数的最简洁方法是什么?

最佳答案

将 Suave 的运算符重命名为其他一些中缀运算符如何?

let (>=>) = Suave.(>>=)

从签名来看,好像是没有bind吧, 但实际上Kleisli composition .

关于f# - 解决类似泛型类型的运算符冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31995356/

相关文章:

types - 是否可以在 F# 中使用本地类型

f# - F# 中类型的静态成员与模块?

c# - 未标记为符合 CLS 的程序集的实际限制?

F# 测量单位 - 'lifting' 值要 float<something>

F# 错误 FS0039 : The type 'XmlProvider' is not defined

postgresql - Npgsql.PostgresException (0x80004005) : XX000: cache lookup failed for type 207852 when schema dropped

visual-studio - 如何将列表添加在一起 ​​F#

f# - 生成无限的数字集

recursion - 如何使用表示状态的函数在 F# 中获得工作状态机?

c# - 如何从 F# 调用 Enumerable.Join?