     var needRestart = false
     var res: A
     var tr: Transactions
+	// var env:UnsafeMutablePointer<Int32> = UnsafeMutablePointer.alloc(sizeof(jmp_buf))
+	// var jmpres = setjmp(env)
     do {
         needRestart = false
         (res, tr) = stm.run(Transactions())

/**
Restarts transaction. 
*/
public func retryExperimental() -> STM<()> {
    return STM({return ((), _retry($0)) })
}



private func _retry(trans: Transactions) -> Transactions {
    trans.forceRetry = true
    // longjmp(trans.env, 1)
    return trans
}

