diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,9 @@
 # Changelog for polysemy-vinyl
 
+## v0.1.3.0
+
+* Add `runInputConstFC`.
+
 ## v0.1.2.0
 
 * Add `separateRecInput`, `separateRecInput'`, `stripRecInput`, `endRecInput`.
diff --git a/polysemy-vinyl.cabal b/polysemy-vinyl.cabal
--- a/polysemy-vinyl.cabal
+++ b/polysemy-vinyl.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           polysemy-vinyl
-version:        0.1.2.0
+version:        0.1.3.1
 synopsis:       Functions for mapping vinyl records in polysemy.
 description:    Extra functions for using vinyl records in polysemy.
 category:       Polysemy Vinyl
@@ -33,6 +33,6 @@
   build-depends:
       base >=4.7 && <5
     , polysemy
-    , polysemy-extra
+    , polysemy-extra >=0.1.6.0
     , vinyl
   default-language: Haskell2010
diff --git a/src/Polysemy/Vinyl.hs b/src/Polysemy/Vinyl.hs
--- a/src/Polysemy/Vinyl.hs
+++ b/src/Polysemy/Vinyl.hs
@@ -29,6 +29,7 @@
 import Control.Arrow
 import Control.Applicative
 import Data.Vinyl
+import Data.Vinyl.Functor
 import Polysemy
 import Polysemy.Extra
 import Polysemy.Input
@@ -121,5 +122,15 @@
 -- @since 0.1.2.0
 endRecInput :: Sem (Input (Rec f '[]) ': r) a -> Sem r a
 endRecInput = interpret \case
-  Input -> return $ RNil
+  Input -> return RNil
 {-# INLINE endRecInput #-}
+
+-- | Like `runInputConstF` but for vinyl composed functors.
+--
+-- @since 0.1.3.0
+runInputConstFC :: forall b f g r a.
+                   f (g b)
+                -> Sem (Input ((f :. g) b) ': r) a
+                -> Sem r a
+runInputConstFC f = runInputConstF @b @(f :. g) (Compose f)
+{-# INLINE runInputConstFC #-}
