diff --git a/lawful-conversions.cabal b/lawful-conversions.cabal
--- a/lawful-conversions.cabal
+++ b/lawful-conversions.cabal
@@ -1,6 +1,6 @@
 cabal-version: 3.0
 name: lawful-conversions
-version: 0.1.6.1
+version: 0.1.7
 synopsis: Lawful typeclasses for bidirectional conversion between types
 category: Conversion
 homepage: https://github.com/nikita-volkov/lawful-conversions
diff --git a/src/library/LawfulConversions.hs b/src/library/LawfulConversions.hs
--- a/src/library/LawfulConversions.hs
+++ b/src/library/LawfulConversions.hs
@@ -87,6 +87,9 @@
     IsMany (..),
     Is,
 
+    -- * Combinators
+    onto,
+
     -- * Optics
     isSomePrism,
     isManyIso,
diff --git a/src/library/LawfulConversions/Classes.hs b/src/library/LawfulConversions/Classes.hs
--- a/src/library/LawfulConversions/Classes.hs
+++ b/src/library/LawfulConversions/Classes.hs
@@ -82,12 +82,25 @@
   --
   -- The first type application of the 'to' function on the other hand specifies
   -- the output data type.
+  --
+  -- If you want to specify the output type instead, use 'onto'.
   from :: a -> b
 
   -- |
   -- Requires the presence of 'IsSome' in reverse direction.
   default from :: (IsSome b a) => a -> b
   from = to
+
+-- |
+-- Alias to 'from', which lets you specify the target type of the conversion first using @TypeApplications@.
+--
+-- In mathematics @onto@ is another name for [Surjective function](https://en.wikipedia.org/wiki/Surjective_function).
+--
+-- E.g.,
+--
+-- > lenientDecodeUtf8 = onto @Text
+onto :: forall b a. (IsMany a b) => a -> b
+onto = from
 
 instance IsMany a a
 
