diff --git a/Data/Constraint/Lifting.hs b/Data/Constraint/Lifting.hs
new file mode 100644
--- /dev/null
+++ b/Data/Constraint/Lifting.hs
@@ -0,0 +1,30 @@
+module Data.Constraint.Lifting where
+
+import Prelude hiding (Functor, (.), id)
+
+import Control.Categorical.Functor
+import Control.Category
+import Control.Category.Groupoid
+import Data.Constraint
+import Data.Functor.Classes
+import Data.Functor.Compose
+import Data.Morphism.Iso
+
+class Lifting c d f where
+    lift :: c a :- d (f a)
+
+type Endolifting c = Lifting c c
+
+--instance (∀ a . c a => d (f a)) => Lifting c d f where lift = Sub Dict
+
+instance Lifting Semigroup Monoid Maybe where lift = Sub Dict
+
+instance Lifting Semigroup Semigroup ((->) a) where lift = Sub Dict
+instance Lifting Monoid Monoid ((->) a) where lift = Sub Dict
+
+instance Semigroup a => Lifting Semigroup Semigroup ((,) a) where lift = Sub Dict
+instance Monoid a => Lifting Monoid Monoid ((,) a) where lift = Sub Dict
+
+instance Lifting (Functor s (->)) (Functor (NT s) (NT (->))) Compose where lift = Sub Dict
+
+instance Lifting Category Groupoid Iso where lift = Sub Dict
diff --git a/constraint.cabal b/constraint.cabal
--- a/constraint.cabal
+++ b/constraint.cabal
@@ -1,5 +1,5 @@
 name:                constraint
-version:             0.1.1.1
+version:             0.1.2.0
 synopsis:            Reified constraints
 -- description:         
 license:             BSD3
@@ -14,6 +14,7 @@
 library
   exposed-modules:     Data.Constraint
                      , Data.Constraint.Compose
+                     , Data.Constraint.Lifting
                      , Data.Constraint.Product
   -- other-modules:       
   -- other-extensions:    
@@ -21,7 +22,8 @@
                      , category >=0.1.2 && <0.3
   -- hs-source-dirs:      
   default-language:    Haskell2010
-  default-extensions:  TypeOperators
+  default-extensions:  UnicodeSyntax
+                     , TypeOperators
                      , RankNTypes
                      , PolyKinds
                      , ConstraintKinds
