Bill Nighy plays things straight as the conflicted hero of this lurid but enthralling Victorian mystery thriller set in 1880.

Based on a novel by Peter Ackroyd, the story sees Nighy’s doggedly noble Scotland Yard detective, John Kildare, on the trail of a serial killer in London’s East End.

Meanwhile, vaudeville performer Lizzie Cree (Olivia Cooke) is in the dock, accused of poisoning her husband. Are the crimes linked?

Kildare’s suspects are a mix of fictional and real-life characters – including cross-dressing music hall star Dan Leno (flamboyantly played by Douglas Booth), radical philosopher Karl Marx (Henry Goodman) and novelist George Gissing (Morgan Watkins).

With director Juan Carlos Medina doing an atmospheric job of conjuring up Victorian London in all its gaslit murk, the narrative that unfolds is teasing and slippery, a grisly and thoroughly gripping puzzle.