There's something about the darkly comic seam in Roald Dahl's writing that translates into playful, witty, children's theatre.

The Witches follows in the footsteps of the RSC's Matilda in improving on the source material, here one of Dahl's less popular books, best known for Nicolas Roeg's terrifying fantasy horror movie.

The creative sorcery of playwright Lucy Kirkwood and director Lyndsey Turner put the right mix of fright and fun into the cauldron to produce a near perfect family show, with sackfuls of inventive visuals, pacy action, and irreverent humour for children, while throwing a bone to the adults.

Ham & High: Sally Ann Triplett as Gran in The WitchesSally Ann Triplett as Gran in The Witches (Image: Marc Brenner)

It's all wrapped up with spiky songs and witty lyrics - even if Dave Mallow's melodies aren't always memorable, they are delivered with brio and flair. From the opening number we learn that Witches appear as normal dinner ladies and street sweepers, but are bald, with spiky fingers and square toes 'we are not women we are hell.'

For some reason they loathe children and want to 'squish' them into inanimate objects - or turn them into mice. Ten minutes in, our perky hero Luke (Bertie Caplan) has been orphaned, cue the arrival of his splendidly eccentric cigar-chomping Norwegian Gran (Sally Ann Triplett, brilliant.)

Ham & High: Daniel Rigby as hotel manager Mr Stringer with the cast of The WitchesDaniel Rigby as hotel manager Mr Stringer with the cast of The Witches (Image: Marc Brenner)

She's an octogenarian witch-hunter who is sent to The Hotel Magnificent to convalesce following a heart attack.

Visually it's the Grand Budapest Hotel, but spiritually it's Fawlty Towers meets The White Lotus as Daniel Rigby's increasingly hysterical manager is plagued by a parade of complaining wealthy guests, mice-children, and a coven of witches in his conference suite.

Sweetie loving perfect posh-boy Bruno (Cian Eagle-Service) is an hilarious foil to Luke's normal guy, and gets a tap-dancing showstopper, with chorus of cupcakes and sticks of rock.Ham & High: Cian Eagle-Service as Bruno and Bertie Caplan as LukeCian Eagle-Service as Bruno and Bertie Caplan as Luke (Image: Marc Brenner)

The Witches are updated, taking selfies with Katherine Kingsley's Garbo-channelling Grand High Witch, yet forced to wear gloves which went out of fashion in 1982. Kingsley's best moment is the enticing Wouldn't It Be Nice, which invites rinsed-out parents to imagine life without children.

But Lizzie Clachan's pastel-hued set comes into its own with a cast of bewitched children popping out of boxes, or as tins of tomatoes in the hotel kitchen.

The rousing Get Up sees a garden gnome lead household ornaments in an uplifting song, and Bruno and Luke scamper around the hotel, popping out of laundry bags, bins, and pianos.Ham & High: Cian Eagle-Service as Bruno in The WitchesCian Eagle-Service as Bruno in The Witches (Image: Marc Brenner)

A touching ending flags the value of loving people for who they are, but there's mercifully no moralising in a show that's the ideal antidote to saccharine Christmas fare.

The Witches runs at The National Theatre until January 27.