applicatives: how do I do this?