lib: make AbstractSorter#compare public

Moreover, a good fix could be to rename  AbstractSorter to Comparator

Signed-off-by: Jean Privat <jean@pryen.org>
POSet is an AbstractSorter

Signed-off-by: Jean Privat <jean@pryen.org>
model: add linearize_mclasses, linearize_mclassdefs, linearize_mpropdefs

Signed-off-by: Jean Privat <jean@pryen.org>
model: implements lookup_*_definition with linearization

Signed-off-by: Jean Privat <jean@pryen.org>
typing: remove NOT YET IMPLEMENTED in ASuperExpr

Signed-off-by: Jean Privat <jean@pryen.org>
tests: propose alternate and fixme for base_super_linext_*

Signed-off-by: Jean Privat <jean@pryen.org>
flow: do not lose the after_expr context in AAssertExpr

Signed-off-by: Jean Privat <jean@pryen.org>
flow: rewrite AOrExpr to be symmetric with AAndExpr

no semantic changes

Signed-off-by: Jean Privat <jean@pryen.org>
flow: use the correct entry point in visit_expr

calling `visit` instead of `enter_visit` skips all the current_node update.

Signed-off-by: Jean Privat <jean@pryen.org>
flow: fix dot file---forgot the closing }

Signed-off-by: Jean Privat <jean@pryen.org>
flow: AProxyExpr do not lose true/false context information

Signed-off-by: Jean Privat <jean@pryen.org>
flow: force the creation of a specific merge after the analysis of the node
tests: add base_adaptive.nit

Signed-off-by: Jean Privat <jean@pryen.org>