Version française
Home     About     Download     Resources     Contact us    
Browse thread
OCAML parametric class coercion
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Olivier Chararas <charar_o@c...>
Subject: OCAML parametric class coercion
(*
NAIVE REQUEST :
In this design the ellipsis won't be bound so I wanted to use coercion
but I can't figure out how to express the coercion with respect to
the parametric type.

Can you help me on syntax?
Or is the problem more fundamental?
Is this bad design anyway?

Thanks
*)

# class ['a] truc(init,(dev:'a)) =
  object(self)
   method essai = 1
  end
  ;;
class ['a] truc : 'b * 'a -> object method essai : int end
# 
  class ['a] bidu1((dev:'a)) =
  object(self)
   method rate(untruc) = untruc#essai
  end
  ;;
Some type variables are unbound in this type:
  class ['a] bidu1 : 'a -> object method rate : < essai : 'b; .. > -> 'b
end
The method rate has type < essai : 'a; .. > -> 'a where .. is unbound
# 
  class ['a] bidu2((dev:'a)) =
  object(self)
   method rate(untruc:truc) = untruc#essai
  end
  ;;
The type constructor truc expects 1 argument(s),
but is here applied to 0 argument(s)