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 {