Closed G3Kappa closed 2 years ago
IAbstractTerm
interface that handles conversion to canonical form, explanation and unification logicAbstractTermParser<T>
abstract class and the IAbstractTermParser
untyped interfaceAction<Parser> configureParser
where necessaryParser.TryAddAbstractParser<T>(AbstractTermParser<T> parser)
ITerm
to have a Maybe<IAbstractTerm> AbstractForm
AbstractList
IAbstractTerm
and the ListParser<T>
. The new types are: List
, Set
(formerly BracyList
), CommaList
and, for internal use, UntypedList
Dict
as an abstract term through the new interface and made it depend on the Set
parserSome bugs pertaining to list unfolding may still be in hiding at the moment.
All abstract terms can be represented canonically as a base term.
There should be an interface that allows defining new types in C# as long as a conversion to and from their canonical form is provided. This interface would also expose the parser, which is currently not extensible, for the purposes of parsing the new type.
After this change is implemented, Dicts and possibly Lists should be rewritten to be abstract first class citizens.