Advertisement
Guest User

--->.<--- THIS CLOSE TO JUST USING VARIANTS INSTEAD OF OBJE

a guest
Feb 26th, 2016
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
OCaml 0.39 KB | None | 0 0
  1. class virtual foo (x: int) =
  2.   object (s:'s)
  3.     method get = x
  4.     method virtual foo : int -> foo
  5.     (* method virtual foo : int -> #foo *)
  6.   end
  7.  
  8. class bar = object
  9.   inherit foo 0
  10.   method foo x = (mkfoo 0 :> foo)
  11. end
  12.  
  13. class baz = object
  14.   inherit foo 1
  15.   method foo x = (mkfoo 1 :> foo)
  16. end
  17.  
  18. let mkfoo (x: int) =
  19.   if x = 0
  20.     then (new baz :> foo)
  21.     else (new bar :> foo)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement