diff --git a/src/term.rs b/src/term.rs index 7f9354e..ec58afb 100644 --- a/src/term.rs +++ b/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 {