@@ -1770,9 +1770,12 @@ stripLinear i tm = evalState (sl tm) [] where
17701770 t' <- sl t
17711771 r' <- sl r
17721772 return (PDPair fc p l' t' r')
1773− sl (PApp fc fn args) = do -- Just the args, fn isn't matchable as a var
1773+ sl (PApp fc fn args) = do fn' <- case fn of
1774+ -- Just the args, fn isn't matchable as a var
1775+ PRef _ _ -> return fn
1776+ t -> sl t
17741777 args' <- mapM slA args
1775− return $ PApp fc fn args'
1778+ return $ PApp fc fn' args'
17761779 where slA (PImp p m l n t) = do t' <- sl t
17771780 return $ PImp p m l n t'
17781781 slA (PExp p l n t) = do t' <- sl t