Внутри монады F #, если вы говорите let!, компилятор переводит это член Bind, который вы определили в построителе монады.
Теперь я вижу, что есть монады запросов, так как показано здесь на MSDN, где вы можете сказать:
query {
    for student in db.Student do
    select student
    count
}
и select и count, например, будут переведены на QueryBuilder members Linq.QueryBuilder.Select и Linq.QueryBuilder.Count.
Мой вопрос в том, является ли это сопоставление ключевых слов членам, связанным с компилятором F #, или же оно расширяемо? Например, могу ли я сказать что-то вроде:
FooMonadBuilder() {
    bar
}
и каким-то образом сообщить компилятору F #, что bar соответствует методу FooMonadBuilder.Bar()?
