
andrea wrote:
data Tipo = Var Int | Const String | Tipo :-> Tipo deriving (Show, Eq)
But now how can I do to make the set of Const fixed?? I want just a few base types, like "int" and "string", how could I define it?
your base types could be: Const "String" :: Tipo Const "Int" :: Tipo and the polymorphic type of the identity function could be: Var 1 :-> Var 1 :: Tipo (and with "infixr :->") the type of binary function like (+) Const "Int" :-> Const "Int" :-> Const "Int" Note: the data type does not support type constructors like "List". I recommend from: http://www.haskell.org/haskellwiki/Research_papers/Type_systems Typing Haskell in Haskell The first few pages will be enough (substitution is on page 7) However, the link http://www.cse.ogi.edu/~mpj/pubs/thih.html does not work for me Could someone correct that link? Christian
participants (1)
-
Christian Maeder