diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,2 +1,2 @@
-import Distribution.Simple
+import           Distribution.Simple
 main = defaultMain
diff --git a/mu-grpc-server.cabal b/mu-grpc-server.cabal
--- a/mu-grpc-server.cabal
+++ b/mu-grpc-server.cabal
@@ -1,5 +1,5 @@
 name:               mu-grpc-server
-version:            0.4.0.0
+version:            0.5.0.0
 synopsis:           gRPC servers for Mu definitions
 description:
   With @mu-grpc-server@ you can easily build gRPC servers for mu-haskell!
@@ -23,7 +23,7 @@
 library
   exposed-modules:  Mu.GRpc.Server
   build-depends:
-      async             >=2.2     && < 3
+      async             >=2.2     && <3
     , avro              >=0.5.1   && <0.6
     , base              >=4.12    && <5
     , binary            >=0.8     && <0.9
@@ -31,10 +31,10 @@
     , conduit           >=1.3.2   && <2
     , http2-grpc-types  >=0.5     && <0.6
     , mtl               >=2.2     && <3
-    , mu-grpc-common    ==0.4.*
-    , mu-protobuf       ==0.4.*
-    , mu-rpc            ==0.4.*
-    , mu-schema         ==0.3.*
+    , mu-grpc-common    >=0.4     && <0.5
+    , mu-protobuf       >=0.4     && <0.5
+    , mu-rpc            >=0.5     && <0.6
+    , mu-schema         >=0.3     && <0.4
     , sop-core          >=0.5     && <0.6
     , stm               >=2.5     && <3
     , stm-conduit       >=4       && <5
@@ -50,7 +50,7 @@
 executable grpc-example-server
   main-is:          ExampleServer.hs
   build-depends:
-      async             >=2.2     && < 3
+      async             >=2.2     && <3
     , avro              >=0.5.1   && <0.6
     , base              >=4.12    && <5
     , binary            >=0.8     && <0.9
@@ -58,11 +58,11 @@
     , conduit           >=1.3.2   && <2
     , http2-grpc-types  >=0.5     && <0.6
     , mtl               >=2.2     && <3
-    , mu-grpc-common    ==0.4.*
-    , mu-grpc-server    ==0.4.*
-    , mu-protobuf       ==0.4.*
-    , mu-rpc            ==0.4.*
-    , mu-schema         ==0.3.*
+    , mu-grpc-common    >=0.4     && <0.5
+    , mu-grpc-server
+    , mu-protobuf       >=0.4     && <0.5
+    , mu-rpc            >=0.5     && <0.6
+    , mu-schema         >=0.3     && <0.4
     , sop-core          >=0.5     && <0.6
     , stm               >=2.5     && <3
     , stm-conduit       >=4       && <5
diff --git a/src/Mu/GRpc/Server.hs b/src/Mu/GRpc/Server.hs
--- a/src/Mu/GRpc/Server.hs
+++ b/src/Mu/GRpc/Server.hs
@@ -47,6 +47,7 @@
 import           Data.Conduit.TMChan
 import           Data.Kind
 import           Data.Proxy
+import           GHC.TypeLits
 import           Network.GRPC.HTTP2.Encoding        (GRPCInput, GRPCOutput, gzip, uncompressed)
 import           Network.GRPC.HTTP2.Types           (GRPCStatus (..), GRPCStatusCode (..))
 import           Network.GRPC.Server.Handlers.Trans
@@ -174,12 +175,15 @@
                               p m chn (MappingRight chn name) methods h
          , GRpcServiceHandlers fullP p m chn rest hs )
          => GRpcServiceHandlers fullP p m chn ('Service name methods ': rest) (h ': hs) where
-  gRpcServiceHandlers f pfullP pr packageName (svr :<&>: rest)
+  gRpcServiceHandlers f pfullP pr packageName (ProperSvc svr :<&>: rest)
     =  gRpcMethodHandlers f pfullP (Proxy @('Service name methods)) pr
                           packageName serviceName svr
     ++ gRpcServiceHandlers f pfullP pr packageName rest
     where serviceName = BS.pack (nameVal (Proxy @name))
 
+instance ( GHC.TypeLits.TypeError ('Text "unions are not supported in gRPC") )
+         => GRpcServiceHandlers fullP p m chn ('OneOf name methods ': rest) hs where
+  gRpcServiceHandlers _ = error "unions are not supported in gRPC"
 
 class GRpcMethodHandlers (fullP :: Package snm mnm anm (TypeRef snm))
                          (fullS :: Service snm mnm anm (TypeRef snm))
