Featherweight Generic Java interpreter and type system and "dynamic" type safety all implemented in OCaml