comparison src/monoize.sml @ 1836:276fa06428ba

Ignore polymorphism in JavaScript calls to custom FFI functions, allowing a kind of simple dynamic typing (unsafe, of course)
author Adam Chlipala <adam@chlipala.net>
date Tue, 11 Dec 2012 15:58:23 -0500
parents a8b273f1f7e3
children 146ec8e90063
comparison
equal deleted inserted replaced
1835:a8b273f1f7e3 1836:276fa06428ba
4085 let 4085 let
4086 val (e, fm) = monoExp (Env.pushERel env x dom, st, fm) e 4086 val (e, fm) = monoExp (Env.pushERel env x dom, st, fm) e
4087 in 4087 in
4088 ((L'.EAbs (x, monoType env dom, monoType env ran, e), loc), fm) 4088 ((L'.EAbs (x, monoType env dom, monoType env ran, e), loc), fm)
4089 end 4089 end
4090 | L.ECApp _ => poly () 4090
4091 | L.ECApp (e, _) =>
4092 let
4093 val (e, fm) = monoExp (env, st, fm) e
4094 in
4095 case #1 e of
4096 L'.EFfi _ => (e, fm)
4097 | _ => poly ()
4098 end
4091 | L.ECAbs _ => poly () 4099 | L.ECAbs _ => poly ()
4092 4100
4093 | L.EFfi mx => ((L'.EFfi mx, loc), fm) 4101 | L.EFfi mx => ((L'.EFfi mx, loc), fm)
4094 | L.EFfiApp (m, x, es) => 4102 | L.EFfiApp (m, x, es) =>
4095 let 4103 let