Derivable partial locking for algebraic data types - Németh Boldizsár (2015)