public static TryAsync <A> Interpret <A>(this Free <A> ma, InterpreterProps props) =>
 TryAsync(async() =>
 {
     var current = Node(ma);
     while (!current.IsLeaf)
     {
         current = await InternalInterpret(current.Next, props)
                   .IfFailThrow();
     }
     return(current.Value);
 });
 static TryAsync <Node <A> > InternalInterpret <A>(this Free <A> action, InterpreterProps props) =>
 action switch
 {