How close are we to being able to do something like below? Maybe we can do it now and I just can’t figure out the signature? Seems pretty important to creating a library of composable utiltities.
Utility.mo
module{
    public class Utility(){
       var nonce = 0;
       
       //cant do shared here because "a shared function is only allowed as a public field of an actor (This is a limitation of the current version.)"
       public func getNonce() : async Nat{nonce};
    };
}
myActor.mo
import Utility "Utility";
actor class myActor() = this {
     var __utility = Utility.Utility();
     public shared func getNonce() : () -> async Nonce = __utility.getNonce;
};
It would also be great to be able to do this for query functions.