handleCustomerAccountsEvent accounts (StreamEvent uuid _ (AccountOpenedEvent event@(AccountOpened customerId _))) =
  accounts
  & customerAccountsAccountsById %~ Map.insert uuid account
  & customerAccountsCustomerAccounts %~ Map.insertWith (++) customerId [uuid]
  where
    account = projectionEventHandler accountProjection (projectionSeed accountProjection) (AccountOpenedAccountEvent event)
-- Assume it's an account event. If it isn't it won't get handled, no biggy.
handleCustomerAccountsEvent accounts (StreamEvent uuid _ (AccountOpenedEvent event@(AccountOpened customerId _))) =
  accounts
  & customerAccountsAccountsById %~ Map.insert uuid account
  & customerAccountsCustomerAccounts %~ Map.insertWith (++) customerId [uuid]
  where
    account = projectionEventHandler accountProjection (projectionSeed accountProjection) (AccountOpenedAccountEvent event)
-- Assume it's an account event. If it isn't it won't get handled, no biggy.
handleCustomerAccountsEvent accounts (StreamEvent uuid _ (AccountOpenedEvent event@(AccountOpened customerId _))) =
  accounts
  & customerAccountsAccountsById %~ Map.insert uuid account
  & customerAccountsCustomerAccounts %~ Map.insertWith (++) customerId [uuid]
  where
    account = projectionEventHandler accountProjection (projectionSeed accountProjection) (AccountOpenedAccountEvent event)
-- Assume it's an account event. If it isn't it won't get handled, no biggy.