tcLoopAnn (InvariantAnn l isFree isLeak e) = tcStmtBlock l "invariant annotation" $ insideAnnotation $ do
    (isLeak',e') <- checkLeakMb l isLeak $  withKind FKind $ tcAnnGuard e
    return $ InvariantAnn (Typed l $ typed $ loc e') isFree isLeak' e'
tcLoopAnn (InvariantAnn l isFree isLeak e) = tcStmtBlock l "invariant annotation" $ insideAnnotation $ do
    (isLeak',e') <- checkLeakMb l isLeak $  withKind FKind $ tcAnnGuard e
    return $ InvariantAnn (Typed l $ typed $ loc e') isFree isLeak' e'
tcLoopAnn (InvariantAnn l isFree isLeak e) = tcStmtBlock l "invariant annotation" $ insideAnnotation $ do
    (isLeak',e') <- checkLeakMb l isLeak $  withKind FKind $ tcAnnGuard e
    return $ InvariantAnn (Typed l $ typed $ loc e') isFree isLeak' e'