raulraja
05/29/2018, 4:20 PMApplicative#mapApplicativegenericdata class Account(val balance: Int, val available: Int)
val maybeAccount: Option<Account> = 
  ForOption extensions {
    val maybeBalance: Option<Int> = ...
    val maybeAvailable: Option<Int> = ...
    map(maybeBalance, maybeAvailable, { (balance, available) ->
      Account(balance, available)
    }).fix()
  }@generic
data class Account(val balance: Int, val available: Int) {
  companion object
}
val maybeAccount: Option<Account> = 
  ForOption extensions {
    val maybeBalance: Option<Int> = ...
    val maybeAvailable: Option<Int> = ...
    mapToAccount(maybeBalance, maybeAvailable).fix()
  }