can we write: `, prep: F => T)`