diff --git a/reactive-banana-gi-gtk.cabal b/reactive-banana-gi-gtk.cabal
--- a/reactive-banana-gi-gtk.cabal
+++ b/reactive-banana-gi-gtk.cabal
@@ -1,16 +1,16 @@
-name: reactive-banana-gi-gtk
-version: 0.2.0.0
 cabal-version: >=1.10
-build-type: Simple
+name: reactive-banana-gi-gtk
+version: 0.3.0.0
 license: PublicDomain
 license-file: LICENSE
 maintainer: mrobinson7627@gmail.com
+author: Matthew Robinson
 homepage: https://github.com/mr/reactive-banana-gi-gtk
 synopsis: Simple reactive programming with GTK GObject Introspection
 description:
     Create Events and Behaviors from GTK signals and attributes. Also supports sinking to attributes.
 category: Development
-author: Matthew Robinson
+build-type: Simple
 
 source-repository head
     type: git
@@ -19,22 +19,22 @@
 library
     exposed-modules:
         Reactive.Banana.GI.Gtk
+    hs-source-dirs: src
+    default-language: Haskell2010
     build-depends:
         base >=4.7 && <5,
-        reactive-banana >=1.1.0.1 && <1.2,
-        gi-gtk >=3.0.11 && <3.1,
-        haskell-gi-base ==0.20.*,
+        reactive-banana >=1.2.0.0 && <1.3,
+        gi-gtk >=3.0.1.1 && <3.1,
+        haskell-gi-base >=0.20 && <0.22,
         transformers >=0.5.2.0 && <0.6,
         text >=1.2.2.1 && <1.3
-    default-language: Haskell2010
-    hs-source-dirs: src
 
 test-suite reactive-banana-gi-gtk-test
     type: exitcode-stdio-1.0
     main-is: Spec.hs
-    build-depends:
-        base >=4.9.1.0 && <4.10,
-        reactive-banana-gi-gtk >=0.2.0.0 && <0.3
-    default-language: Haskell2010
     hs-source-dirs: test
+    default-language: Haskell2010
     ghc-options: -threaded -rtsopts -with-rtsopts=-N
+    build-depends:
+        base >=4.11.1.0 && <4.12,
+        reactive-banana-gi-gtk -any
diff --git a/src/Reactive/Banana/GI/Gtk.hs b/src/Reactive/Banana/GI/Gtk.hs
--- a/src/Reactive/Banana/GI/Gtk.hs
+++ b/src/Reactive/Banana/GI/Gtk.hs
@@ -232,41 +232,10 @@
         -> Behavior (a -> IO b)
         -> AttrOpBehavior self tag
 
-    (::==)
-        ::
-            ( HasAttributeList self
-            , info ~ ResolveAttribute attr self
-            , AttrInfo info
-            , AttrBaseTypeConstraint info self
-            , tag ~ AttrSet
-            , AttrOpAllowed tag info self
-            , AttrSetTypeConstraint info b
-            )
-        => AttrLabelProxy (attr :: Symbol)
-        -> Behavior (self -> b)
-        -> AttrOpBehavior self tag
-
-    (::~~)
-        ::
-            ( HasAttributeList self
-            , info ~ ResolveAttribute attr self
-            , AttrInfo info
-            , AttrBaseTypeConstraint info self
-            , tag ~ AttrSet
-            , AttrOpAllowed AttrSet info self
-            , AttrOpAllowed AttrGet info self
-            , AttrSetTypeConstraint info b
-            , a ~ AttrGetType info
-            )
-        => AttrLabelProxy (attr :: Symbol)
-        -> Behavior (self -> a -> b)
-        -> AttrOpBehavior self tag
-
 infixr 0 :==
 infixr 0 :==>
 infixr 0 :~~
-infixr 0 ::==
-infixr 0 ::~~
+infixr 0 :~~>
 
 sink1 :: GObject self => self -> AttrOpBehavior self AttrSet -> MomentIO ()
 sink1 self (attr :== b) = do
@@ -289,16 +258,6 @@
     liftIOLater $ set self [attr :~> x]
     e <- changes b
     reactimate' $ (fmap $ \x -> set self [attr :~> x]) <$> e
-sink1 self (attr ::== b) = do
-    x <- valueBLater b
-    liftIOLater $ set self [attr ::= x]
-    e <- changes b
-    reactimate' $ (fmap $ \x -> set self [attr ::= x]) <$> e
-sink1 self (attr ::~~ b) = do
-    x <- valueBLater b
-    liftIOLater $ set self [attr ::~ x]
-    e <- changes b
-    reactimate' $ (fmap $ \x -> set self [attr ::~ x]) <$> e
 
 -- "Animate" an attribute with a 'Reactive.Banana.Behavior'.
 --
