 18 Mar, 2015 1 commit


Kim Nguyễn authored
Improve pretty printing of Bdds and add debug directive to interactively inspect the internal representation of types.

 18 Feb, 2015 1 commit


Kim Nguyễn authored
remain regular. Within their recursive definitions, parametric types must always be instantiated with their original parameters and all types of mutually recursive definitions must have the same parameters. We use Tarjan's strongly connected components algorithm to group type definitions accordingly.

 16 Feb, 2015 3 commits


Kim Nguyễn authored
correctly handle insantiated types in regular expressions.

Kim Nguyễn authored

Kim Nguyễn authored
requiring an abscence of whitespace between ``t'' and ``(''. Outside of regular expression contexts, ``t (t1, …, tn)'' is parsed with a higher precedence than & and \, to allow one to write ``t (Int) & Bool'' without extra parentheses (i.e. ``(t (Int)) & Bool''). Inside a regular expression, type instantiation and sequencing become ambiguous, and there is no way to distinguish syntactically: ``[ Int (Int, Int) ]'' from ``[ t (Int, Int) ]''. The former should resolve to a sequence while the latter only makes sense as an instantiation (if ``t'' is a parametric type). Both are treated as element sequencing and disambiguated during identifier resolution (more precisely during the "derecurse" phase, before typechecking). Note that due to the lower precedence of sequencing w.r.t to other regular expression constructs, a type ``[ t (Int)* ]'' will be parsed correctly, but yield an error message saying that t is not fully intantiated. One has to write ``[ (t (Int))* ]'' which is similar to function applications for expressions. Finally, we also reorder sequencing after typing to always group a potential type instantiation with its argument, i.e. we transform sequences such as ``[ t1 t2 t3 ... tn ]'' (which are parsed as ``[ (((t1 t2) t3) ... tn) ]'' because sequence concatenation is leftassociative) into ``[ ... (ti tj) ... ]'' if ``ti'' is an identifier and ``tj'' is of the form ``(s1,...,sk)''. This is sound because concatenation of regular expression is associative (and the original sequence would fail, anyway).

 08 Sep, 2014 2 commits


Pietro Abate authored
 change syntax to avoid conflicts ( tried "((", "[<", "<[", "(" ) type t {[ 'a,'b ]} = (Int,[ 'b* ]) ;; let app (f : 'a > t {[Int,Int]} )(a : 'a) : t = f a;;

Pietro Abate authored
 type t 'a = ('a,'a)  type t ('a,'b) = ('a,'b) Fix Typer.pp_env printer for types Minor code refactring

 28 Aug, 2014 1 commit


Pietro Abate authored
 Var identifiers are now of type U.t instead of string  Remove TVar from ast. Polymorphic variables are just types

 19 Aug, 2014 1 commit


Pietro Abate authored

 23 Jul, 2014 1 commit


Pietro Abate authored

 22 Jun, 2014 1 commit


Julien Lopez authored

 17 Feb, 2014 1 commit


Pietro Abate authored

 07 Feb, 2014 1 commit


Pietro Abate authored
 There is still an error in the type representation that is the result of a substitution.

 15 Jan, 2014 1 commit


Pietro Abate authored
 type variables are now correctly parsed as patterns and not as expressions  Add a new module Var that contains all the type variables related machinery  Remove old functions and unit tests about BoolVar of only variables, since now variables are always stored associated with one or more kinds

 06 Jan, 2014 1 commit


Pietro Abate authored
 revert a few chances I did before in the code  add new unit tests functions for the Tallying problem

 11 Dec, 2013 1 commit


Pietro Abate authored

 03 Dec, 2013 2 commits


Pietro Abate authored

Pietro Abate authored
For the moment are identied as `$X and interpreted as atoms

 05 Oct, 2007 22 commits


Pietro Abate authored
Original author: afrisch Date: 20070612 12:59:44+00:00

Pietro Abate authored
Original author: afrisch Date: 20050707 15:03:35+00:00

Pietro Abate authored
Original author: afrisch Date: 20050707 13:57:18+00:00

Pietro Abate authored
Original author: afrisch Date: 20050705 13:49:26+00:00

Pietro Abate authored
Original author: afrisch Date: 20050324 19:33:56+00:00

Pietro Abate authored
Original author: afrisch Date: 20050321 13:31:44+00:00

Pietro Abate authored
Original author: afrisch Date: 20050315 23:31:45+00:00

Pietro Abate authored
Original author: afrisch Date: 20050306 19:02:15+00:00

Pietro Abate authored
Original author: afrisch Date: 20050306 18:26:47+00:00

Pietro Abate authored
Original author: afrisch Date: 20050306 11:58:34+00:00

Pietro Abate authored
Original author: afrisch Date: 20050304 15:26:28+00:00

Pietro Abate authored
Original author: afrisch Date: 20050304 13:13:41+00:00

Pietro Abate authored
Original author: afrisch Date: 20050304 12:11:54+00:00

Pietro Abate authored
Original author: afrisch Date: 20050304 01:16:26+00:00

Pietro Abate authored
[r20050303 23:47:00 by afrisch] Identifiers are now qualified names. Uniform dot syntax for external CDuce and OCaml unit Original author: afrisch Date: 20050303 23:47:02+00:00

Pietro Abate authored
Original author: afrisch Date: 20050225 10:35:06+00:00

Pietro Abate authored
Original author: afrisch Date: 20050223 01:17:29+00:00

Pietro Abate authored
Original author: afrisch Date: 20050106 15:51:38+00:00

Pietro Abate authored
Original author: afrisch Date: 20050103 10:16:01+00:00

Pietro Abate authored
Original author: afrisch Date: 20041230 18:01:55+00:00

Pietro Abate authored
Original author: afrisch Date: 20041227 00:29:42+00:00

Pietro Abate authored
Original author: afrisch Date: 20041225 20:39:15+00:00
