polymorphic_entrypoint.aes
1 include "String.aes" 2 contract interface Remote = 3 entrypoint upd : ('k, 'v, map('k, 'v)) => map('k, 'v) 4 entrypoint upd_bad : ('k, 'v, map('k, 'v)) => map('k, 'v) 5 6 contract Test = 7 entrypoint upd(k, v, m) = m{[k] = v} 8 9 entrypoint upd_bad(k : 'a, v : 'a, m : map('a, 'a)) : map('a, map('a, 'a)) = 10 {[k] = m} 11 12 entrypoint test(r : Remote, v, m) = 13 r.upd("", v, m) 14 15 entrypoint test_bad(r : Remote, v : 'a, m : map(string, 'a)) : 'a = 16 let m' : map(string, 'a) = r.upd_bad("", v, m) 17 m'[""] 18 19 entrypoint test_bad_mono(r : Remote, v : string, m : map(string, string)) : string = 20 String.concat("RESULT: ", test_bad(r, v, m))