term strip(): flatten ladders

This commit is contained in:
Michael Sippel 2025-03-06 23:35:29 +01:00
parent 893d09255d
commit ee75d23755
Signed by: senvas
GPG key ID: 060F22F65102F95C

View file

@ -131,9 +131,17 @@ impl TypeTerm {
let mut rungs :Vec<_> = rungs.into_iter()
.filter_map(|mut r| {
r = r.strip();
if r != TypeTerm::unit() { Some(r) }
if r != TypeTerm::unit() {
Some(match r {
TypeTerm::Ladder(r) => r,
a => vec![ a ]
})
}
else { None }
}).collect();
})
.flatten()
.collect();
if rungs.len() == 1 {
rungs.pop().unwrap()
} else {