translateExpression scope _ nsid (L1.L1ExLet ss expr closure) = do
  letNS <- registerNewNamespace ss nsid closure
  let L1.L1NamespaceContents closureList = closure
  buildSkeletonModel ss closure letNS
  (_, nsAsserts) <- isolateAssertions (translateNSContents scope letNS closureList)
  L2.L2ExLet ss
    <$> translateExpression scope ss letNS expr
    <*> (pure letNS)
    <*> (pure nsAsserts)
translateExpression scope _ nsid (L1.L1ExLet ss expr closure) = do
  letNS <- registerNewNamespace ss nsid closure
  let L1.L1NamespaceContents closureList = closure
  buildSkeletonModel ss closure letNS
  (_, nsAsserts) <- isolateAssertions (translateNSContents scope letNS closureList)
  L2.L2ExLet ss
    <$> translateExpression scope ss letNS expr
    <*> (pure letNS)
    <*> (pure nsAsserts)
translateExpression scope _ nsid (L1.L1ExLet ss expr closure) = do
  letNS <- registerNewNamespace ss nsid closure
  let L1.L1NamespaceContents closureList = closure
  buildSkeletonModel ss closure letNS
  (_, nsAsserts) <- isolateAssertions (translateNSContents scope letNS closureList)
  L2.L2ExLet ss
    <$> translateExpression scope ss letNS expr
    <*> (pure letNS)
    <*> (pure nsAsserts)