run method
A
run()
Implementation
A run() {
_TBind? current = cast(_unsafeGetTBind());
if (current == null) {
return _unsafeGetTPure()!._a;
}
while(true) {
final fa = current!._fa;
final f = current._f;
final fabind = fa._unsafeGetTBind();
if (fabind != null) {
final fa2 = fabind._fa;
final f2 = fabind._f;
current = new _TBind(cast(fa2), (a2) => new _TBind(f2(a2), f));
} else {
final res = f(cast(fa._unsafeGetTPure()!._a));
current = res._unsafeGetTBind();
if (current == null) {
return cast(res._unsafeGetTPure()!._a);
}
}
}
}