diff --git a/src/term.rs b/src/term.rs
index 4326d67..1cbd73a 100644
--- a/src/term.rs
+++ b/src/term.rs
@@ -132,6 +132,24 @@ impl TypeTerm {
             atom => atom
         }
     }
+
+
+
+    pub fn get_interface_type(&self) -> TypeTerm {
+        match self {
+            TypeTerm::Ladder(rungs) => {
+                if let Some(top) = rungs.first() {
+                    top.get_interface_type()
+                } else {
+                    TypeTerm::unit()
+                }
+            }
+            TypeTerm::App(args) => {
+                TypeTerm::App(args.iter().map(|a| a.get_interface_type()).collect())
+            }
+            atom => atom.clone()
+        }
+    }
 }
 
 //<<<<>>>><<>><><<>><<<*>>><<>><><<>><<<<>>>>\\