diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -63,7 +63,7 @@
 	$(RM) html
 
 
-VERSION = 0.6.1
+VERSION = 0.6.2
 DISTDIR = alms-$(VERSION)
 TARBALL = $(DISTDIR).tar.gz
 
diff --git a/alms.cabal b/alms.cabal
--- a/alms.cabal
+++ b/alms.cabal
@@ -1,5 +1,5 @@
 Name:           alms
-Version:        0.6.1
+Version:        0.6.2
 Copyright:      2011, Jesse A. Tov
 Cabal-Version:  >= 1.8
 License:        BSD3
diff --git a/src/Statics/Coercion.hs b/src/Statics/Coercion.hs
--- a/src/Statics/Coercion.hs
+++ b/src/Statics/Coercion.hs
@@ -15,6 +15,7 @@
 
 import Prelude ()
 import qualified Data.Map as M
+import qualified Data.Set as S
 
 -- | Location to use for constructed code
 _loc :: Loc
@@ -93,12 +94,13 @@
 build μ (TyApp tc1 [σf1, qf, σf2]) (TyApp tc2 [σt1, qt, σt2])
   | tc1 == tcFun, tc2 == tcFun
   = do
-    dom ← build μ σt1 σf1
-    cod ← build μ σf2 σt2
-    let which = contractIdent $
-          if qualifier qf ⊑ qualifier qt
-            then "func"
-            else "affunc"
+    dom   ← build μ σt1 σf1
+    cod   ← build μ σf2 σt2
+    which ← contractIdent <$>
+          if qualifier qt == QeU S.empty
+             && qualifier qf /= QeU S.empty
+            then return "affunc"
+            else do qf ⊏: qt; return "func"
     return [ex| $qvid:which $dom $cod |]
 
 build _ σfrom σto
