tcStmtAnn :: (ProverK loc m) => StatementAnnotation Identifier loc -> TcM m (StatementAnnotation GIdentifier (Typed loc))
tcStmtAnn (AssumeAnn l isLeak e) = tcStmtBlock l "annotation statement" $ insideAnnotation $ do
    (isLeak',e') <- checkLeakMb l isLeak $ withKind FKind $ tcAnnGuard e
    return $ AssumeAnn (Typed l $ typed $ loc e') isLeak e'
tcStmtAnn :: (ProverK loc m) => StatementAnnotation Identifier loc -> TcM m (StatementAnnotation GIdentifier (Typed loc))
tcStmtAnn (AssumeAnn l isLeak e) = tcStmtBlock l "annotation statement" $ insideAnnotation $ do
    (isLeak',e') <- checkLeakMb l isLeak $ withKind FKind $ tcAnnGuard e
    return $ AssumeAnn (Typed l $ typed $ loc e') isLeak e'
tcStmtAnn (AssumeAnn l isLeak e) = tcStmtBlock l "annotation statement" $ insideAnnotation $ do
    (isLeak',e') <- checkLeakMb l isLeak $ withKind FKind $ tcAnnGuard e
    return $ AssumeAnn (Typed l $ typed $ loc e') isLeak e'