По сути, я хочу сопоставить шаблон с содержимым записи, а затем вернуть модификацию указанной записи. Поэтому у меня возникает такая ситуация:
updateChr :: Database -> Database -> Database
updateChr db Database{mode=1, characters=chr} = db{characters=(map someFunc chr)}
updateChr db Database{mode=2, characters=chr} = db{characters=(map someOtherFunc chr)}
Где два аргумента базы данных всегда должны быть одной и той же записью. Есть ли способ сделать это, передавая запись только один раз?