deserialise :: TupleSym r => ExtensibleDeserialiser r
deserialise _ self (Node "Tuple" [e1, e2]) env = do
  Dyn t1 d1 <- self e1 env
  Dyn t2 d2 <- self e2 env
  return $ Dyn (App (App (typeRep @(,)) t1) t2) (tuple d1 d2)
deserialise :: TupleSym r => ExtensibleDeserialiser r
deserialise _ self (Node "Tuple" [e1, e2]) env = do
  Dyn t1 d1 <- self e1 env
  Dyn t2 d2 <- self e2 env
  return $ Dyn (App (App (typeRep @(,)) t1) t2) (tuple d1 d2)
deserialise _ self (Node "Tuple" [e1, e2]) env = do
  Dyn t1 d1 <- self e1 env
  Dyn t2 d2 <- self e2 env
  return $ Dyn (App (App (typeRep @(,)) t1) t2) (tuple d1 d2)