term strip(): flatten ladders
This commit is contained in:
parent
893d09255d
commit
ee75d23755
1 changed files with 10 additions and 2 deletions
12
src/term.rs
12
src/term.rs
|
@ -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 {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue