private static Arbitrary <To> MapArb <To, From>(Arbitrary <From> arb, Func <From, To> func) where To : class => Arb.Convert <From, To>( FsFunc.Create <From, To>(a => { var r = func(a); convertBackTable.GetValue(r, _ => a); return(r); }), FsFunc.Create <To, From>(b => convertBackTable.TryGetValue(b, out var result)