每当我通过Future
合并Either
和EitherT
(或任何其他近似变体)时,我会使用抽象但具有描述性的名称,例如Task
。
但是,由于在编程中命名的东西是one of the few challenges,我更倾向于拥有一些可以遵循的固定命名约定。
例如,我们如何使用State
命名Either
和StateT
的monad? :
type ???[E, S, A] = StateT[Either[E, ?], S, A]
我是否可以遵循任何可靠的命名约定,或者提出更适合的Task
等抽象名称(假设这些monad将在整个代码中重复使用)?