diff --git a/accelerate-utility.cabal b/accelerate-utility.cabal
--- a/accelerate-utility.cabal
+++ b/accelerate-utility.cabal
@@ -1,5 +1,5 @@
 Name:             accelerate-utility
-Version:          0.1.1
+Version:          1.0
 License:          BSD3
 License-File:     LICENSE
 Author:           Henning Thielemann <haskell@henning-thielemann.de>
@@ -15,7 +15,7 @@
 Build-Type:       Simple
 
 Source-Repository this
-  Tag:         0.1.1
+  Tag:         1.0
   Type:        darcs
   Location:    http://hub.darcs.net/thielema/accelerate-utility/
 
@@ -25,9 +25,9 @@
 
 Library
   Build-Depends:
-    accelerate >=0.15 && <0.16,
+    accelerate >=1.0 && <1.2,
     utility-ht >=0.0.8 && <0.1,
-    base >=4.5 && <4.10
+    base >=4.5 && <4.11
 
   GHC-Options:      -Wall -fwarn-missing-import-lists
   Hs-Source-Dirs:   src
diff --git a/src/Data/Array/Accelerate/Utility/Lift/Run.hs b/src/Data/Array/Accelerate/Utility/Lift/Run.hs
--- a/src/Data/Array/Accelerate/Utility/Lift/Run.hs
+++ b/src/Data/Array/Accelerate/Utility/Lift/Run.hs
@@ -82,13 +82,13 @@
    with1 ::
       (A.Arrays a) =>
       ((Acc (Arguments a f) -> Acc (Result f)) ->
-       ((Arguments a f) -> Result f)) ->
+       (Arguments a f -> Result f)) ->
       (Acc a -> f) -> a -> Plain f
 
 with ::
    (C f) =>
    ((Acc (Arguments () f) -> Acc (Result f)) ->
-    ((Arguments () f) -> Result f)) ->
+    (Arguments () f -> Result f)) ->
    f -> Plain f
 with run f = with1 run (const f) ()
 
diff --git a/src/Data/Array/Accelerate/Utility/Loop.hs b/src/Data/Array/Accelerate/Utility/Loop.hs
--- a/src/Data/Array/Accelerate/Utility/Loop.hs
+++ b/src/Data/Array/Accelerate/Utility/Loop.hs
@@ -14,34 +14,24 @@
 nest n0 f x0 =
    A.asnd $
    A.awhile
-      (A.map (A.>* 0) . A.afst)
+      (A.map (A.> 0) . A.afst)
       (A.lift . (\(n, x) -> (A.map (subtract 1) n, f x)) . A.unlift)
       (A.lift (A.unit n0, x0))
 
 _nest n0 f x0 =
    A.asnd $
    A.awhile
-      (A.unit . (A.>* 0) . A.the . A.afst)
+      (A.unit . (A.> 0) . A.the . A.afst)
       (A.lift . (\(n, x) -> (A.unit $ A.the n - 1, f x)) . A.unlift)
       (A.lift (A.unit n0, x0))
 
 
-nestLog2, _nestLog2 ::
+nestLog2 ::
    (A.Arrays a) =>
    Exp Int -> (Acc a -> Acc a) -> Acc a -> Acc a
 nestLog2 n0 f x0 =
    A.asnd $
    A.awhile
-      (A.map (A.>* 1) . A.afst)
+      (A.map (A.> 1) . A.afst)
       (A.lift . (\(n, x) -> (A.map (flip div 2 . (1+)) n, f x)) . A.unlift)
       (A.lift (A.unit n0, x0))
-
-{-
-This is an infinite loop,
-because A.acond always has to generate code for both branches.
--}
-_nestLog2 n0 f x0 =
-   let go n x =
-          A.acond (n A.<=* 1) x $
-          go (div (n+1) 2) (f x)
-   in  go n0 x0
diff --git a/src/Data/Array/Accelerate/Utility/Ord.hs b/src/Data/Array/Accelerate/Utility/Ord.hs
--- a/src/Data/Array/Accelerate/Utility/Ord.hs
+++ b/src/Data/Array/Accelerate/Utility/Ord.hs
@@ -4,27 +4,26 @@
 
 import qualified Data.Array.Accelerate as A
 import Data.Array.Accelerate
-          (Exp, Acc, Array, Elt, Slice, Shape, IsScalar, Scalar,
-           (?), (<=*), )
+          (Exp, Acc, Array, Elt, Slice, Shape, Scalar, (?), )
 
 
 argmin ::
-   (Elt a, Elt b, IsScalar a) =>
+   (Elt a, Elt b, A.Ord a) =>
    Exp (a, b) -> Exp (a, b) -> Exp (a, b)
-argmin x y  =  A.fst x <=* A.fst y ? (x,y)
+argmin x y  =  A.fst x A.<= A.fst y ? (x,y)
 
 argminimum ::
-   (Slice sh, Shape sh, Elt a, Elt b, IsScalar a) =>
+   (Slice sh, Shape sh, Elt a, Elt b, A.Ord a) =>
    Acc (Array sh (a, b)) -> Acc (Scalar (a, b))
 argminimum = A.fold1All argmin
 
 
 argmax ::
-   (Elt a, Elt b, IsScalar a) =>
+   (Elt a, Elt b, A.Ord a) =>
    Exp (a, b) -> Exp (a, b) -> Exp (a, b)
-argmax x y  =  A.fst x <=* A.fst y ? (y,x)
+argmax x y  =  A.fst x A.<= A.fst y ? (y,x)
 
 argmaximum ::
-   (Slice sh, Shape sh, Elt a, Elt b, IsScalar a) =>
+   (Slice sh, Shape sh, Elt a, Elt b, A.Ord a) =>
    Acc (Array sh (a, b)) -> Acc (A.Scalar (a, b))
 argmaximum = A.fold1All argmax
diff --git a/src/Data/Array/Accelerate/Utility/Sliced.hs b/src/Data/Array/Accelerate/Utility/Sliced.hs
--- a/src/Data/Array/Accelerate/Utility/Sliced.hs
+++ b/src/Data/Array/Accelerate/Utility/Sliced.hs
@@ -10,8 +10,7 @@
 
 import qualified Data.Array.Accelerate as A
 import Data.Array.Accelerate
-          (Exp, Acc, Array, Elt, Slice, Shape, DIM2, (:.)((:.)),
-           (!), (?), (>*), (==*), )
+          (Exp, Acc, Array, Elt, Slice, Shape, DIM2, (:.)((:.)), (!), (?), )
 
 
 length ::
@@ -49,7 +48,7 @@
           (\(sh :. n) -> sh :. n+1)
           (A.shape xs))
       (Exp.modify (expr:.expr) $
-       \(ix:.k) -> k ==* 0 ? (x ! ix, xs ! A.lift (ix :. k-1)))
+       \(ix:.k) -> k A.== 0 ? (x ! ix, xs ! A.lift (ix :. k-1)))
 
 consExp ::
    (Shape sh, Slice sh, Elt a) =>
@@ -62,7 +61,7 @@
           (\(z :. n) -> z :. n+1)
           (A.shape xs))
       (Exp.modify (expr:.expr) $
-       \(ix:.k) -> k ==* 0 ? (x, xs ! A.lift (ix :. k-1)))
+       \(ix:.k) -> k A.== 0 ? (x, xs ! A.lift (ix :. k-1)))
 
 
 append3 ::
@@ -90,8 +89,8 @@
        \(globalIx :. k :. j) ->
           let ix = A.lift $ globalIx :. j
           in  flip (A.caseof k) (x ! ix) $
-                 ((==* 1), (y ! ix)) :
-                 ((==* 2), (z ! ix)) :
+                 ((A.== 1), (y ! ix)) :
+                 ((A.== 2), (z ! ix)) :
                  [])
 
 
@@ -120,7 +119,7 @@
    let sh:.m = Exp.unlift (expr:.expr) $ A.shape arr
    in  A.generate
           (A.lift $ sh:.n)
-          (\ix -> m >* A.indexHead ix ? (arr!ix, x))
+          (\ix -> m A.> A.indexHead ix ? (arr!ix, x))
 
 
 {- |
diff --git a/src/Data/Array/Accelerate/Utility/Sliced1.hs b/src/Data/Array/Accelerate/Utility/Sliced1.hs
--- a/src/Data/Array/Accelerate/Utility/Sliced1.hs
+++ b/src/Data/Array/Accelerate/Utility/Sliced1.hs
@@ -10,8 +10,7 @@
 
 import qualified Data.Array.Accelerate as A
 import Data.Array.Accelerate
-          (Exp, Acc, Array, Elt, (:.)((:.)), Slice, Shape,
-           (!), (?), (>*), (==*), )
+          (Exp, Acc, Array, Elt, (:.)((:.)), Slice, Shape, (!), (?), )
 
 
 length ::
@@ -50,7 +49,7 @@
           (A.shape xs))
       (Exp.modify (expr:.expr:.expr) $
        \(ix:.k:.j) ->
-          k ==* 0 ? (x ! A.lift (ix:.j), xs ! A.lift (ix :. k-1 :. j)))
+          k A.== 0 ? (x ! A.lift (ix:.j), xs ! A.lift (ix :. k-1 :. j)))
 
 {- |
 The outer and innermost dimensions must match.
@@ -66,7 +65,7 @@
        (_shy:.ny:.leny) = Exp.unlift (expr:.expr:.expr) $ A.shape y
    in  A.generate (A.lift $ shx :. nx+ny :. max lenx leny) $
        Exp.modify (expr:.expr:.expr) $ \(ix:.k:.j) ->
-          nx >* k ? (x ! A.lift (ix:.k:.j), y ! A.lift (ix:.k-nx:.j))
+          nx A.> k ? (x ! A.lift (ix:.k:.j), y ! A.lift (ix:.k-nx:.j))
 
 append3 ::
    (Shape sh, Slice sh, Elt a) =>
@@ -93,8 +92,8 @@
        \(globalIx :. k :. j :. i) ->
           let ix = A.lift $ globalIx :. j :. i
           in  flip (A.caseof k) (x ! ix) $
-                 ((==* 1), (y ! ix)) :
-                 ((==* 2), (z ! ix)) :
+                 ((A.== 1), (y ! ix)) :
+                 ((A.== 2), (z ! ix)) :
                  [])
 
 
