String literals now have their own AST constructor
(replacing Vector). Strings are still typechecked as
[Char].
Scheme is now a functor, allowing it to contain a Type
or a Typed. Uses of Scheme have been replaced with
TypeScheme (an alias of Scheme (Type Scalar)).
The Def of a typed AST now includes the type Scheme.
The Def of a typed AST now refers to a Scheme Typed
instead of a Value (or Scheme Value).
The interpreter now has a separate type for runtime
values, InterpreterValue.
Many unused constructors of Term and Resolved (such as
Choice and Wrapped) have been removed.
Type inference now takes a typed prelude. This means the
prelude is not inferred for every line of REPL input.
Type inference now uses a list of types as the fragment
stack instead of a list of values.
yarnValueInstruction and yarnValue are now merged and
total.
Auxiliary changes:
[Char]
.Scheme
is now a functor, allowing it to contain aType
or aTyped
. Uses ofScheme
have been replaced withTypeScheme
(an alias ofScheme (Type Scalar)
).Def
of a typed AST now includes the typeScheme
.Def
of a typed AST now refers to aScheme Typed
instead of aValue
(orScheme Value
).InterpreterValue
.Term
andResolved
(such asChoice
andWrapped
) have been removed.yarnValueInstruction
andyarnValue
are now merged and total.