diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,19 @@
+# 0.8.0.0
+
+## Serialization
+
+* The code generator now supports type parameters in schema; previously
+  the code generator would treat these the same as AnyPointer, but now
+  the generated Haskell has corresponding type parameters.
+* The `Cerialize` and `Marshal` type classes now take the state token
+  `s` as a parameter, which was necessary to support type parameters.
+
+## Misc
+
+* Some of the multi-parameter type classes in Capnp.Classes now have
+  functional dependencies between their parameters. This should
+  generally improve type inference.
+
 # 0.7.0.0
 
 ## Serialization
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -14,7 +14,6 @@
 
 Serialization support works, with some limitations:
 
-* Generated schema currently ignore type parameters ([#29][issue29]).
 * We do not support defining custom default values for fields of pointer
   type; see ([#28][issue28]).
 * We currently do not correctly handle decoding lists of structs from
@@ -45,7 +44,6 @@
 
 [issue27]: https://github.com/zenhack/haskell-capnp/issues/27
 [issue28]: https://github.com/zenhack/haskell-capnp/issues/28
-[issue29]: https://github.com/zenhack/haskell-capnp/issues/29
 
 [ci-img]: https://gitlab.com/isd/haskell-capnp/badges/master/build.svg
 [ci]: https://gitlab.com/isd/haskell-capnp/pipelines
diff --git a/capnp.cabal b/capnp.cabal
--- a/capnp.cabal
+++ b/capnp.cabal
@@ -1,6 +1,6 @@
 cabal-version:            2.2
 name:                     capnp
-version:                  0.7.0.0
+version:                  0.8.0.0
 category:                 Data, Serialization, Network, Rpc
 copyright:                2016-2020 haskell-capnp contributors (see CONTRIBUTORS file).
 author:                   Ian Denhardt
@@ -222,6 +222,7 @@
     , wl-pprint-text ^>= 1.2
     , filepath ^>= 1.4.2
     , directory ^>= 1.3.0
+    , bifunctors ^>= 5.5.8
 
 --------------------------------------------------------------------------------
 
@@ -262,6 +263,12 @@
       , Capnp.Gen.Aircraft.Pure
       , Capnp.Gen.ById.X832bcc6686a26d56
       , Capnp.Gen.ById.X832bcc6686a26d56.Pure
+
+      -- generated from tests/data/generics.capnp
+      , Capnp.Gen.Generics
+      , Capnp.Gen.Generics.Pure
+      , Capnp.Gen.ById.Xb6421fb8e478d144
+      , Capnp.Gen.ById.Xb6421fb8e478d144.Pure
 
       -- Actual tests:
       , Module.Capnp.Gen.Capnp.Schema
diff --git a/cmd/capnpc-haskell/IR/Common.hs b/cmd/capnpc-haskell/IR/Common.hs
--- a/cmd/capnpc-haskell/IR/Common.hs
+++ b/cmd/capnpc-haskell/IR/Common.hs
@@ -8,6 +8,10 @@
 import Data.Word
 
 import qualified Capnp.Untyped.Pure as U
+import           Data.Bifunctor     (Bifunctor (..))
+import qualified Data.Map.Strict    as M
+import qualified Data.Vector        as V
+import qualified IR.Name            as Name
 
 newtype TypeId = TypeId Word64
     deriving(Show, Read, Eq, Ord)
@@ -43,31 +47,97 @@
     PrimWord PrimBool                   -> 1
 
 -- Capnproto types. The 'r' type parameter is the type of references to other nodes,
--- which may be different in different stages of the pipeline.
+-- which may be different in different stages of the pipeline. Likewise, the 'b'
+-- parameter is the "Brand."
 
-data Type r
-    = CompositeType (CompositeType r)
+bothMap :: (Bifunctor p, Functor f) => (a -> b) -> p (f a) a -> p (f b) b
+bothMap f = bimap (fmap f) f
+
+newtype ListBrand r = ListBrand [PtrType (ListBrand r) r]
+    deriving(Show, Read, Eq)
+
+instance Functor ListBrand where
+    fmap f (ListBrand ps) = ListBrand (fmap (bothMap f) ps)
+
+newtype MapBrand r = MapBrand (M.Map Word64 (BrandScope r))
+    deriving(Show, Eq)
+
+instance Functor MapBrand where
+    fmap f (MapBrand m) = MapBrand $ fmap (fmap f) m
+
+newtype BrandScope r = Bind (V.Vector (Binding r))
+    deriving(Show, Eq)
+
+instance Functor BrandScope where
+    fmap f (Bind bs) = Bind $ fmap (fmap f) bs
+
+data Binding r = Unbound | BoundType (PtrType (MapBrand r) r)
+    deriving(Show, Eq)
+
+instance Functor Binding where
+    fmap _ Unbound        = Unbound
+    fmap f (BoundType ty) = BoundType $ bothMap f ty
+
+data TypeParamRef r = TypeParamRef
+    { paramScope :: r
+    , paramIndex :: !Int
+    , paramName  :: Name.UnQ
+    }
+    deriving(Show, Read, Eq, Functor)
+
+data Type b r
+    = CompositeType (CompositeType b r)
     | VoidType
     | WordType (WordType r)
-    | PtrType (PtrType r)
+    | PtrType (PtrType b r)
     deriving(Show, Read, Eq, Functor)
 
-newtype CompositeType r
-    = StructType r
+instance Bifunctor Type where
+    second = fmap
+    first f = \case
+        CompositeType x -> CompositeType (first f x)
+        VoidType        -> VoidType
+        WordType x      -> WordType x
+        PtrType x       -> PtrType (first f x)
+
+data CompositeType b r
+    = StructType r b
     deriving(Show, Read, Eq, Functor)
 
+instance Bifunctor CompositeType where
+    second = fmap
+    first f (StructType r b) = StructType r (f b)
+
+data InterfaceType b r
+    = InterfaceType r b
+    deriving(Show, Read, Eq, Functor)
+
+instance Bifunctor InterfaceType where
+    second = fmap
+    first f (InterfaceType r b) = InterfaceType r (f b)
+
 data WordType r
     = EnumType r
     | PrimWord PrimWord
     deriving(Show, Read, Eq, Functor)
 
-data PtrType r
-    = ListOf (Type r)
+data PtrType b r
+    = ListOf (Type b r)
     | PrimPtr PrimPtr
-    | PtrComposite (CompositeType r)
-    | PtrInterface r
+    | PtrComposite (CompositeType b r)
+    | PtrInterface (InterfaceType b r)
+    | PtrParam (TypeParamRef r)
     deriving(Show, Read, Eq, Functor)
 
+instance Bifunctor PtrType where
+    second = fmap
+    first f = \case
+        ListOf x       -> ListOf (first f x)
+        PrimPtr x      -> PrimPtr x
+        PtrComposite x -> PtrComposite (first f x)
+        PtrInterface x -> PtrInterface (first f x)
+        PtrParam p     -> PtrParam p
+
 data PrimWord
     = PrimInt IntType
     | PrimFloat32
@@ -89,18 +159,26 @@
     deriving(Show, Read, Eq)
 
 -- | The type and location of a field.
-data FieldLocType r
+data FieldLocType b r
     -- | The field is in the struct's data section.
     = DataField DataLoc (WordType r)
     -- | The field is in the struct's pointer section (the argument is the
     -- index).
-    | PtrField !Word16 (PtrType r)
+    | PtrField !Word16 (PtrType b r)
     -- | The field is a group or union; it's "location" is the whole struct.
-    | HereField (CompositeType r)
+    | HereField (CompositeType b r)
     -- | The field is of type void (and thus is zero-size).
     | VoidField
     deriving(Show, Read, Eq, Functor)
 
+instance Bifunctor FieldLocType where
+    second = fmap
+    first f = \case
+        DataField l t  -> DataField l t
+        PtrField idx t -> PtrField idx (first f t)
+        HereField t    -> HereField (first f t)
+        VoidField      -> VoidField
+
 -- | The location of a field within a struct's data section.
 data DataLoc = DataLoc
     { dataIdx :: !Int
@@ -114,14 +192,21 @@
     }
     deriving(Show, Read, Eq)
 
-data Value r
+data Value b r
     = VoidValue
     | WordValue (WordType r) !Word64
-    | PtrValue (PtrType r) (Maybe U.Ptr)
+    | PtrValue (PtrType b r) (Maybe U.Ptr)
     deriving(Show, Eq, Functor)
 
+instance Bifunctor Value where
+    second = fmap
+    first f = \case
+        VoidValue     -> VoidValue
+        WordValue t v -> WordValue t v
+        PtrValue t v  -> PtrValue (first f t) v
+
 -- | Extract the type from a 'FildLocType'.
-fieldType :: FieldLocType r -> Type r
+fieldType :: FieldLocType r b -> Type r b
 fieldType (DataField _ ty) = WordType ty
 fieldType (PtrField _ ty)  = PtrType ty
 fieldType (HereField ty)   = CompositeType ty
diff --git a/cmd/capnpc-haskell/IR/Flat.hs b/cmd/capnpc-haskell/IR/Flat.hs
--- a/cmd/capnpc-haskell/IR/Flat.hs
+++ b/cmd/capnpc-haskell/IR/Flat.hs
@@ -15,6 +15,8 @@
 import qualified IR.Common as Common
 import qualified IR.Name   as Name
 
+type Brand = Common.ListBrand Node
+
 data CodeGenReq = CodeGenReq
     { allNodes :: [Node]
     , reqFiles :: [File]
@@ -29,9 +31,10 @@
     deriving(Show, Eq)
 
 data Node = Node
-    { name   :: Name.CapnpQ
-    , nodeId :: !Word64
-    , union_ :: Node'
+    { name       :: Name.CapnpQ
+    , nodeId     :: !Word64
+    , union_     :: Node'
+    , typeParams :: [Common.TypeParamRef Node]
     }
     deriving(Show, Eq)
 
@@ -47,14 +50,11 @@
         -- ^ The struct's anonymous union, if any.
         }
     | Interface
-        { methods   :: [Method]
-        , supers    :: [Node]
-        -- ^ Immediate superclasses
-        , ancestors :: [Node]
-        -- ^ All ancestors, including 'supers'.
+        { methods :: [Method]
+        , supers  :: [Common.InterfaceType Brand Node]
         }
     | Constant
-        { value :: Common.Value Node
+        { value :: Common.Value Brand Node
         }
     | Other
     deriving(Show, Eq)
@@ -62,8 +62,8 @@
 
 data Method = Method
     { name       :: Name.UnQ
-    , paramType  :: Name.CapnpQ
-    , resultType :: Name.CapnpQ
+    , paramType  :: Common.CompositeType Brand Node
+    , resultType :: Common.CompositeType Brand Node
     }
     deriving(Show, Eq)
 
@@ -76,7 +76,7 @@
 
 data Field = Field
     { fieldName    :: Name.CapnpQ
-    , fieldLocType :: Common.FieldLocType Node
+    , fieldLocType :: Common.FieldLocType Brand Node
     }
     deriving(Show, Eq)
 
diff --git a/cmd/capnpc-haskell/IR/Haskell.hs b/cmd/capnpc-haskell/IR/Haskell.hs
--- a/cmd/capnpc-haskell/IR/Haskell.hs
+++ b/cmd/capnpc-haskell/IR/Haskell.hs
@@ -90,10 +90,11 @@
         , defs :: [InstanceDef]
         }
     | DcClass
-        { ctx    :: [Type]
-        , name   :: Name.LocalQ
-        , params :: [Name.UnQ]
-        , decls  :: [ClassDecl]
+        { ctx     :: [Type]
+        , name    :: Name.LocalQ
+        , params  :: [Name.UnQ]
+        , funDeps :: [(T.Text, T.Text)]
+        , decls   :: [ClassDecl]
         }
     deriving(Show, Read, Eq)
 
diff --git a/cmd/capnpc-haskell/IR/Name.hs b/cmd/capnpc-haskell/IR/Name.hs
--- a/cmd/capnpc-haskell/IR/Name.hs
+++ b/cmd/capnpc-haskell/IR/Name.hs
@@ -115,7 +115,16 @@
 -- | Lower-case the first letter of a name, making it legal as the name of a
 -- variable (as opposed to a type or data constructor).
 valueName :: LocalQ -> UnQ
-valueName name =
-    case T.unpack (renderLocalQ name) of
-        []     -> ""
-        (c:cs) -> UnQ $ T.pack $ toLower c : cs
+valueName = lowerFstName
+
+typeVarName :: UnQ -> T.Text
+typeVarName (UnQ txt) = lowerFst txt
+
+-- | Lower-case the first letter of a name
+lowerFstName :: LocalQ -> UnQ
+lowerFstName name = UnQ $ lowerFst $ renderLocalQ name
+
+lowerFst :: T.Text -> T.Text
+lowerFst txt = case T.unpack txt of
+    []     -> ""
+    (c:cs) -> T.pack $ toLower c : cs
diff --git a/cmd/capnpc-haskell/IR/Pure.hs b/cmd/capnpc-haskell/IR/Pure.hs
--- a/cmd/capnpc-haskell/IR/Pure.hs
+++ b/cmd/capnpc-haskell/IR/Pure.hs
@@ -6,6 +6,8 @@
 import qualified IR.Common as C
 import qualified IR.Name   as Name
 
+type Brand = C.ListBrand Name.CapnpQ
+
 data File = File
     { fileId        :: !Word64
     , fileName      :: FilePath
@@ -25,6 +27,7 @@
 
 data Data = Data
     { typeName   :: Name.LocalQ
+    , typeParams :: [Name.UnQ]
     , firstClass :: !Bool
     -- ^ Whether this is a "first class" type, i.e. it is a type in the
     -- capnproto sense, rather than an auxiliary type defined for a group
@@ -47,34 +50,37 @@
 
 data Constant = Constant
     { name  :: Name.LocalQ
-    , value :: C.Value Name.CapnpQ
+    , value :: C.Value Brand Name.CapnpQ
     }
 
 data Interface = IFace
     { name        :: Name.CapnpQ
+    , typeParams  :: [C.TypeParamRef Name.CapnpQ]
     , interfaceId :: !Word64
     , methods     :: [Method]
-    , supers      :: [Interface]
-    , ancestors   :: [Interface]
+    , supers      :: [(Interface, Brand)]
+    -- ^ Immediate superclasses
+    , ancestors   :: [(Interface, Brand)]
+    -- ^ All ancestors, including 'supers'.
     }
 
 -- TODO(cleanup): this same type exists in IR.Flat; it doesn't make sense for
 -- IR.Common, but we should factor this out.
 data Method = Method
     { name       :: Name.UnQ
-    , paramType  :: Name.CapnpQ
-    , resultType :: Name.CapnpQ
+    , paramType  :: C.CompositeType Brand Name.CapnpQ
+    , resultType :: C.CompositeType Brand Name.CapnpQ
     }
 
 data Field = Field
     { name  :: Name.UnQ
     -- ^ The name of the field.
 
-    , type_ :: C.Type Name.CapnpQ
+    , type_ :: C.Type Brand Name.CapnpQ
     -- ^ The type of the field.
     }
 
 data Variant = Variant
     { name :: Name.LocalQ
-    , arg  :: Maybe (C.Type Name.CapnpQ)
+    , arg  :: Maybe (C.Type Brand Name.CapnpQ)
     }
diff --git a/cmd/capnpc-haskell/IR/Raw.hs b/cmd/capnpc-haskell/IR/Raw.hs
--- a/cmd/capnpc-haskell/IR/Raw.hs
+++ b/cmd/capnpc-haskell/IR/Raw.hs
@@ -12,6 +12,8 @@
 import qualified IR.Common as Common
 import qualified IR.Name   as Name
 
+type Brand = Common.ListBrand Name.CapnpQ
+
 data File = File
     { fileId   :: !Word64
     , fileName :: FilePath
@@ -23,20 +25,23 @@
     -- | Define a newtype wrapper around a struct. This also defines
     -- some instances of type classes that exist for all such wrappers.
     = StructWrapper
-        { typeCtor :: Name.LocalQ
+        { typeCtor   :: Name.LocalQ
+        , typeParams :: [Name.UnQ]
         }
     -- | Define instances of several type classes which should only
     -- exist for "real" structs, i.e. not groups.
     | StructInstances
         { typeCtor      :: Name.LocalQ
         -- ^ The type constructor for the type to generate instances for.
+        , typeParams    :: [Name.UnQ]
 
         -- Needed for some instances:
         , dataWordCount :: !Word16
         , pointerCount  :: !Word16
         }
     | InterfaceWrapper
-        { typeCtor :: Name.LocalQ
+        { typeCtor   :: Name.LocalQ
+        , typeParams :: [Name.UnQ]
         }
     | UnionVariant
         { parentTypeCtor :: Name.LocalQ
@@ -44,6 +49,7 @@
         -- we can derive the type constructor for the union proper from this,
         -- and it is useful to have for other things (like unknown' variants).
         , tagOffset      :: !Word32
+        , typeParams     :: [Name.UnQ]
         , unionDataCtors :: [Variant]
         }
     | Enum
@@ -53,12 +59,14 @@
     | Getter -- get_* function
         { fieldName     :: Name.LocalQ
         , containerType :: Name.LocalQ
-        , fieldLocType  :: Common.FieldLocType Name.CapnpQ
+        , typeParams    :: [Name.UnQ]
+        , fieldLocType  :: Common.FieldLocType Brand Name.CapnpQ
         }
     | Setter -- set_* function
         { fieldName     :: Name.LocalQ
         , containerType :: Name.LocalQ
-        , fieldLocType  :: Common.FieldLocType Name.CapnpQ
+        , typeParams    :: [Name.UnQ]
+        , fieldLocType  :: Common.FieldLocType Brand Name.CapnpQ
 
         , tag           :: Maybe TagSetter
         -- ^ Info for setting the tag, if this is a union.
@@ -66,18 +74,20 @@
     | HasFn -- has_* function
         { fieldName     :: Name.LocalQ
         , containerType :: Name.LocalQ
+        , typeParams    :: [Name.UnQ]
         , ptrIndex      :: !Word16
         }
     | NewFn -- new_* function
         { fieldName     :: Name.LocalQ
         , containerType :: Name.LocalQ
-        , fieldLocType  :: Common.FieldLocType Name.CapnpQ
+        , typeParams    :: [Name.UnQ]
+        , fieldLocType  :: Common.FieldLocType Brand Name.CapnpQ
 
         , newFnType     :: NewFnType
         }
     | Constant
         { name  :: Name.LocalQ
-        , value :: Common.Value Name.CapnpQ
+        , value :: Common.Value Brand Name.CapnpQ
         }
     deriving(Show, Eq)
 
@@ -107,6 +117,6 @@
 data Variant = Variant
     { name     :: Name.LocalQ
     , tagValue :: !Word16
-    , locType  :: Common.FieldLocType Name.CapnpQ
+    , locType  :: Common.FieldLocType Brand Name.CapnpQ
     }
     deriving(Show, Eq)
diff --git a/cmd/capnpc-haskell/IR/Stage1.hs b/cmd/capnpc-haskell/IR/Stage1.hs
--- a/cmd/capnpc-haskell/IR/Stage1.hs
+++ b/cmd/capnpc-haskell/IR/Stage1.hs
@@ -18,13 +18,17 @@
     , Struct(..)
     , Field(..)
     , CodeGenReq(..)
+    , Brand
     ) where
 
 import Data.Word
 
-import qualified IR.Common as Common
-import qualified IR.Name   as Name
+import qualified Data.Vector as V
+import qualified IR.Common   as Common
+import qualified IR.Name     as Name
 
+type Brand = Common.MapBrand Node
+
 data CodeGenReq = CodeGenReq
     { reqFiles :: [ReqFile]
     , allFiles :: [File]
@@ -51,6 +55,7 @@
     { nodeNested :: [(Name.UnQ, Node)]
     , nodeParent :: Maybe Node
     , nodeId     :: !Word64
+    , nodeParams :: V.Vector Name.UnQ
     }
     deriving(Show, Eq)
 
@@ -58,20 +63,20 @@
     = NodeEnum [Name.UnQ]
     | NodeStruct Struct
     | NodeInterface Interface
-    | NodeConstant (Common.Value Node)
+    | NodeConstant (Common.Value Brand Node)
     | NodeOther
     deriving(Show, Eq)
 
 data Interface = Interface
     { methods :: [Method]
-    , supers  :: [Node]
+    , supers  :: [Common.InterfaceType Brand Node]
     }
     deriving(Show, Eq)
 
 data Method = Method
     { name       :: Name.UnQ
-    , paramType  :: Node
-    , resultType :: Node
+    , paramType  :: Common.CompositeType Brand Node
+    , resultType :: Common.CompositeType Brand Node
     }
     deriving(Show, Eq)
 
@@ -87,6 +92,6 @@
 data Field = Field
     { name    :: Name.UnQ
     , tag     :: Maybe Word16
-    , locType :: Common.FieldLocType Node
+    , locType :: Common.FieldLocType Brand Node
     }
     deriving(Show, Eq)
diff --git a/cmd/capnpc-haskell/Trans/CgrToStage1.hs b/cmd/capnpc-haskell/Trans/CgrToStage1.hs
--- a/cmd/capnpc-haskell/Trans/CgrToStage1.hs
+++ b/cmd/capnpc-haskell/Trans/CgrToStage1.hs
@@ -8,6 +8,7 @@
 import Data.Word
 
 import Data.Function        ((&))
+import Data.Maybe           (mapMaybe)
 import Data.ReinterpretCast (doubleToWord, floatToWord)
 import Data.Text.Encoding   (encodeUtf8)
 
@@ -31,7 +32,7 @@
   where
     outMap = M.map translate inMap
 
-    translate Schema.Node{scopeId, id, nestedNodes, union'} = Stage1.Node
+    translate Schema.Node{scopeId, id, nestedNodes, union', parameters} = Stage1.Node
         { nodeCommon = Stage1.NodeCommon
             { nodeId = id
             , nodeNested =
@@ -44,6 +45,10 @@
                     Nothing
                 else
                     Just (outMap M.! id)
+            , nodeParams = V.fromList
+                [ Name.UnQ name
+                | Schema.Node'Parameter{name} <- V.toList parameters
+                ]
             }
         , nodeUnion = case union' of
             Schema.Node'enum Schema.Node'enum'{enumerants} ->
@@ -65,7 +70,10 @@
             Schema.Node'interface Schema.Node'interface'{ methods, superclasses } ->
                 Stage1.NodeInterface Stage1.Interface
                     { methods = map (methodToMethod outMap) (V.toList methods)
-                    , supers = [ outMap M.! id | Schema.Superclass{id} <- V.toList superclasses ]
+                    , supers =
+                        [ C.InterfaceType (outMap M.! id) (brandToBrand outMap brand)
+                        | Schema.Superclass{id, brand} <- V.toList superclasses
+                        ]
                     }
             Schema.Node'const Schema.Node'const'{ type_, value } -> Stage1.NodeConstant $
                 let mismatch = error "ERROR: Constant's type and value do not agree"
@@ -130,16 +138,21 @@
                     Schema.Value'struct v ->
                         case type_ of
                             -- TODO: brand
-                            Schema.Type'struct Schema.Type'struct'{ typeId } -> C.PtrValue
-                                (C.PtrComposite (C.StructType (outMap M.! typeId)))
+                            Schema.Type'struct Schema.Type'struct'{ typeId, brand } -> C.PtrValue
+                                (C.PtrComposite $ C.StructType
+                                    (outMap M.! typeId)
+                                    (brandToBrand outMap brand)
+                                )
                                 v
                             _ ->
                                 mismatch
 
                     Schema.Value'interface ->
                         case type_ of
-                            Schema.Type'interface Schema.Type'interface'{ typeId } ->
-                                C.PtrValue (C.PtrInterface (outMap M.! typeId)) Nothing
+                            Schema.Type'interface Schema.Type'interface'{ typeId, brand } ->
+                                C.PtrValue
+                                    (C.PtrInterface (C.InterfaceType (outMap M.! typeId) (brandToBrand outMap brand)))
+                                    Nothing
                             _ ->
                                 mismatch
 
@@ -152,13 +165,40 @@
                 Stage1.NodeOther
         }
 
+brandToBrand :: NodeMap Stage1.Node -> Schema.Brand -> Stage1.Brand
+brandToBrand nodeMap Schema.Brand{scopes} =
+    C.MapBrand $ M.fromList $ mapMaybe scopeToScope (V.toList scopes)
+  where
+    scopeToScope Schema.Brand'Scope{scopeId, union'} = case union' of
+        Schema.Brand'Scope'unknown' _ -> Nothing
+        Schema.Brand'Scope'inherit -> Nothing
+        Schema.Brand'Scope'bind bindings -> Just
+            ( scopeId
+            , C.Bind $ bindings
+                & V.map (\case
+                    Schema.Brand'Binding'type_ typ -> case typeToType nodeMap typ of
+                        C.PtrType t ->
+                            C.BoundType t
+                        C.CompositeType t ->
+                            C.BoundType (C.PtrComposite t)
+                        _ -> error
+                            "Invalid schema: a type parameter was set to a non-pointer type."
 
+                    Schema.Brand'Binding'unbound -> C.Unbound
+                    Schema.Brand'Binding'unknown' _ -> C.Unbound
+                )
+            )
+
 methodToMethod :: NodeMap Stage1.Node -> Schema.Method -> Stage1.Method
-methodToMethod nodeMap Schema.Method{ name, paramStructType, resultStructType } =
+methodToMethod nodeMap Schema.Method
+    { name
+    , paramStructType, paramBrand
+    , resultStructType, resultBrand
+    } =
     Stage1.Method
         { name = Name.UnQ name
-        , paramType = nodeMap M.! paramStructType
-        , resultType = nodeMap M.! resultStructType
+        , paramType = structTypeToType nodeMap paramStructType paramBrand
+        , resultType = structTypeToType nodeMap resultStructType resultBrand
         }
 
 enumerantToName :: Schema.Enumerant -> Name.UnQ
@@ -176,7 +216,7 @@
         , locType = getFieldLocType nodeMap union'
         }
 
-getFieldLocType :: NodeMap Stage1.Node -> Schema.Field' -> C.FieldLocType Stage1.Node
+getFieldLocType :: NodeMap Stage1.Node -> Schema.Field' -> C.FieldLocType Stage1.Brand Stage1.Node
 getFieldLocType nodeMap = \case
     Schema.Field'slot Schema.Field'slot'{type_, defaultValue, offset} ->
         case typeToType nodeMap type_ of
@@ -196,7 +236,9 @@
             C.CompositeType ty ->
                 C.PtrField (fromIntegral offset) (C.PtrComposite ty)
     Schema.Field'group Schema.Field'group'{typeId} ->
-        C.HereField $ C.StructType $ nodeMap M.! typeId
+        C.HereField $ C.StructType
+            (nodeMap M.! typeId)
+            (C.MapBrand M.empty) -- groups are always monomorphic
     Schema.Field'unknown' _ ->
         -- Don't know how to interpret this; we'll have to leave the argument
         -- opaque.
@@ -266,7 +308,15 @@
         | Schema.Node{union'=Schema.Node'file, id=fileId, nestedNodes} <- V.toList nodes
         ]
 
-typeToType :: NodeMap Stage1.Node -> Schema.Type -> C.Type Stage1.Node
+structTypeToType
+    :: NodeMap Stage1.Node
+    -> Word64
+    -> Schema.Brand
+    -> C.CompositeType Stage1.Brand Stage1.Node
+structTypeToType nodeMap typeId brand =
+    C.StructType (nodeMap M.! typeId) (brandToBrand nodeMap brand)
+
+typeToType :: NodeMap Stage1.Node -> Schema.Type -> C.Type Stage1.Brand Stage1.Node
 typeToType nodeMap = \case
     Schema.Type'void       -> C.VoidType
     Schema.Type'bool       -> C.WordType $ C.PrimWord C.PrimBool
@@ -284,24 +334,30 @@
     Schema.Type'data_      -> C.PtrType $ C.PrimPtr C.PrimData
     Schema.Type'list Schema.Type'list'{elementType} ->
         C.PtrType $ C.ListOf (typeToType nodeMap elementType)
-    -- TODO: use 'brand' to generate type parameters.
-    Schema.Type'enum Schema.Type'enum'{typeId} ->
+    -- nb. enum has a brand field, but it's not actually use for anything.
+    Schema.Type'enum Schema.Type'enum'{typeId, brand = _ } ->
         C.WordType $ C.EnumType $ nodeMap M.! typeId
-    Schema.Type'struct Schema.Type'struct'{typeId} ->
-        C.CompositeType $ C.StructType $ nodeMap M.! typeId
-    Schema.Type'interface Schema.Type'interface'{typeId} ->
-        C.PtrType $ C.PtrInterface $ nodeMap M.! typeId
-    Schema.Type'anyPointer anyPtr -> C.PtrType $ C.PrimPtr $ C.PrimAnyPtr $
-        case anyPtr of
-            Schema.Type'anyPointer'unconstrained Schema.Type'anyPointer'unconstrained'anyKind ->
-                C.Ptr
-            Schema.Type'anyPointer'unconstrained Schema.Type'anyPointer'unconstrained'struct ->
-                C.Struct
-            Schema.Type'anyPointer'unconstrained Schema.Type'anyPointer'unconstrained'list ->
-                C.List
-            Schema.Type'anyPointer'unconstrained Schema.Type'anyPointer'unconstrained'capability ->
-                C.Cap
-            _ ->
-                -- Something we don't know about; assume it could be anything.
-                C.Ptr
+    -- TODO: use 'brand' to generate type parameters.
+    Schema.Type'struct Schema.Type'struct'{typeId, brand} ->
+        C.CompositeType $ structTypeToType nodeMap typeId brand
+    Schema.Type'interface Schema.Type'interface'{typeId, brand} ->
+        C.PtrType $ C.PtrInterface (C.InterfaceType (nodeMap M.! typeId) (brandToBrand nodeMap brand))
+    Schema.Type'anyPointer p ->
+        case p of
+            Schema.Type'anyPointer'parameter Schema.Type'anyPointer'parameter'{scopeId, parameterIndex} ->
+                let paramScope = nodeMap M.! scopeId in
+                C.PtrType $ C.PtrParam C.TypeParamRef
+                    { paramScope
+                    , paramIndex = fromIntegral parameterIndex
+                    , paramName = Stage1.nodeParams (Stage1.nodeCommon paramScope) V.! fromIntegral parameterIndex
+                    }
+            Schema.Type'anyPointer'unconstrained unconstrained  ->
+                C.PtrType $ C.PrimPtr $ C.PrimAnyPtr $ case unconstrained of
+                    Schema.Type'anyPointer'unconstrained'anyKind    -> C.Ptr
+                    Schema.Type'anyPointer'unconstrained'struct     -> C.Struct
+                    Schema.Type'anyPointer'unconstrained'list       -> C.List
+                    Schema.Type'anyPointer'unconstrained'capability -> C.Cap
+                    Schema.Type'anyPointer'unconstrained'unknown' _ -> C.Ptr
+                    -- ^ Something we don't know about; assume it could be anything.
+            _ -> C.VoidType -- TODO: implicitMethodParameter
     _ -> C.VoidType -- TODO: constrained anyPointers
diff --git a/cmd/capnpc-haskell/Trans/FlatToPure.hs b/cmd/capnpc-haskell/Trans/FlatToPure.hs
--- a/cmd/capnpc-haskell/Trans/FlatToPure.hs
+++ b/cmd/capnpc-haskell/Trans/FlatToPure.hs
@@ -1,29 +1,40 @@
 {-# LANGUAGE DuplicateRecordFields #-}
 {-# LANGUAGE NamedFieldPuns        #-}
 {-# LANGUAGE OverloadedStrings     #-}
-{-# LANGUAGE RecordWildCards       #-}
 module Trans.FlatToPure (cgrToFiles) where
 
 import Data.Word
 
 import qualified Data.Map.Strict as M
+import qualified Data.Set        as S
 
 import qualified IR.Common as C
 import qualified IR.Flat   as Flat
 import qualified IR.Name   as Name
 import qualified IR.Pure   as Pure
 
+import Control.Monad.State (State, evalState, get, put)
+
 type IFaceMap = M.Map Word64 Pure.Interface
 
+-- | Because of pervasive use of DuplicateRecordFields, we can't easily
+-- just use the auto-generated `name` accessor function... so we define
+-- this wrapper.
+nodeName :: Flat.Node -> Name.CapnpQ
+nodeName Flat.Node{name} = name
+
 cgrToFiles :: Flat.CodeGenReq -> [Pure.File]
 cgrToFiles Flat.CodeGenReq{allNodes, reqFiles} =
     map oneFile reqFiles
   where
     allInterfaces = concatMap (convertInterface ifaceMap) allNodes
-    ifaceMap = M.fromList
-        [ (interfaceId, iface)
-        | iface@Pure.IFace{interfaceId} <- allInterfaces
-        ]
+    ifaceMap =
+        M.map
+            (\iface -> iface { Pure.ancestors = collectAncestors iface })
+            $ M.fromList
+                [ (interfaceId, iface)
+                | iface@Pure.IFace{interfaceId} <- allInterfaces
+                ]
     oneFile Flat.File{nodes, fileId, fileName} =
         Pure.File
             { fileId
@@ -38,28 +49,64 @@
     ifaceMap
     Flat.Node
         { name
+        , typeParams
         , nodeId
-        , union_ = Flat.Interface{ methods, supers, ancestors }
+        , union_ = Flat.Interface{ methods, supers }
         }
     =
-    [ Pure.IFace
-        { name
-        , interfaceId = nodeId
-        , methods = [ Pure.Method{..} | Flat.Method{..} <- methods ]
-        , supers = [ ifaceMap M.! nodeId | Flat.Node{nodeId} <- supers ]
-        , ancestors = [ ifaceMap M.! nodeId | Flat.Node{nodeId} <- ancestors ]
-        }
-    ]
+    let result =
+            Pure.IFace
+                { name
+                , typeParams = [ param { C.paramScope = name } | param <- typeParams ]
+                , interfaceId = nodeId
+                , methods =
+                    [ Pure.Method
+                        { name
+                        , paramType = C.bothMap nodeName paramType
+                        , resultType = C.bothMap nodeName resultType
+                        }
+                    | Flat.Method{name, paramType, resultType} <- methods ]
+                , supers =
+                    map
+                        (\(C.InterfaceType Flat.Node{nodeId} brand) ->
+                            ( ifaceMap M.! nodeId
+                            , fmap nodeName brand
+                            )
+                        )
+                        supers
+                , ancestors = collectAncestors result -- See Note [Ancestors]
+                }
+    in
+    [result]
 convertInterface _ _ = []
 
+-- | Collect the of the ancestors of an interface, not including itself. Avoids using
+-- the 'ancestors' field, as this is used to compute that field in the first place.
+-- See Note [Ancestors]
+collectAncestors :: Pure.Interface -> [(Pure.Interface, Pure.Brand)]
+collectAncestors Pure.IFace{supers} =
+    concat $ evalState (traverse go supers) S.empty
+  where
+    go :: (Pure.Interface, Pure.Brand) -> State (S.Set Word64) [(Pure.Interface, Pure.Brand)]
+    go (iface@Pure.IFace{interfaceId, supers}, brand) = do
+        seen <- get
+        if interfaceId `S.member` seen then
+            pure []
+            else (do
+                put (S.insert interfaceId seen)
+                xs <- concat <$> traverse go supers
+                pure $ (iface, brand) : xs
+            )
+
 nodeToReExports :: Flat.Node -> [Name.LocalQ]
 nodeToReExports Flat.Node{name=Name.CapnpQ{local}, union_=Flat.Enum _} = [ local ]
 nodeToReExports _ = []
 
-unionToDecl :: Bool -> Name.LocalQ -> Name.LocalQ -> [Flat.Variant] -> Pure.Decl
-unionToDecl firstClass cerialName local variants =
+unionToDecl :: Bool -> Name.LocalQ -> Name.LocalQ -> [Name.UnQ] -> [Flat.Variant] -> Pure.Decl
+unionToDecl firstClass cerialName local typeParams variants =
     Pure.DataDecl Pure.Data
         { typeName = local
+        , typeParams
         , cerialName
         , def = Pure.Sum
             [ Pure.Variant
@@ -82,7 +129,9 @@
         }
 
 nodeToDecls :: IFaceMap -> Flat.Node -> [Pure.Decl]
-nodeToDecls ifaceMap Flat.Node{name=name@Name.CapnpQ{local}, nodeId, union_} = case union_ of
+nodeToDecls ifaceMap Flat.Node{name=name@Name.CapnpQ{local}, nodeId, union_, typeParams} =
+  let typeParams' = map C.paramName typeParams in
+  case union_ of
     Flat.Enum _ ->
         -- Don't need to do anything here, since we're just re-exporting the
         -- stuff from the raw module.
@@ -92,11 +141,12 @@
     Flat.Struct{ isGroup, fields=[], union=Just Flat.Union{variants}} ->
         -- It's just one big union; skip the outer struct wrapper and make it
         -- a top-level sum type.
-        [ unionToDecl (not isGroup) local local variants ]
+        [ unionToDecl (not isGroup) local local typeParams' variants ]
     -- Flat.Struct{ isGroup=True, union=Nothing } -> [] -- See Note [Collapsing Groups]
     Flat.Struct{ isGroup, fields, union } ->
         Pure.DataDecl Pure.Data
             { typeName = local
+            , typeParams = typeParams'
             , cerialName = local
             , def = Pure.Product $
                 map fieldToField fields
@@ -106,7 +156,13 @@
                     Just _ ->
                         [ Pure.Field
                             { name = "union'"
-                            , type_ = C.CompositeType $ C.StructType $ Name.mkSub name ""
+                            , type_ = C.CompositeType $ C.StructType
+                                (Name.mkSub name "")
+                                (C.ListBrand $
+                                    map
+                                        (C.PtrParam . fmap nodeName)
+                                        typeParams
+                                )
                             }
                         ]
             , firstClass = not isGroup
@@ -115,13 +171,13 @@
             Just Flat.Union{variants} ->
                 -- Also make a type that's just the union, but give it the
                 -- same cerialName:
-                [ unionToDecl False local (Name.mkSub local "") variants ]
+                [ unionToDecl False local (Name.mkSub local "") typeParams' variants ]
             Nothing ->
                 []
     Flat.Constant { value } ->
         [ Pure.ConstDecl Pure.Constant
             { name = local
-            , value = fmap (\Flat.Node{name} -> name) value
+            , value = C.bothMap nodeName value
             }
         ]
     Flat.Other -> []
@@ -129,9 +185,7 @@
 fieldToField :: Flat.Field -> Pure.Field
 fieldToField Flat.Field{fieldName, fieldLocType} = Pure.Field
     { name = Name.getUnQ fieldName
-    , type_ = fmap
-        (\Flat.Node{name} -> name)
-        (C.fieldType fieldLocType)
+    , type_ = C.bothMap nodeName (C.fieldType fieldLocType)
     }
 
 -- Note [Collapsing Groups]
@@ -156,3 +210,18 @@
 -- Note that we actually depend on (1) to avoid name collisions, since
 -- otherwise both the data constructor for the anonymous union and the
 -- data constructor for the group will be the same.
+
+
+-- Note [Ancestors]
+-- ================
+--
+-- When constructing a Pure.Interface, we need to fill in both the immediate
+-- superclasses and the full transitive list of ancestors. Strictly speaking
+-- the latter is redundant and can be computed from the former -- which is
+-- what we do, but we store it so that the PureToHaskell phase doesn't need to
+-- worry about it.
+--
+-- The way we compute this is a bit subtle, in that it involves tying the knot;
+-- The 'collectAncestors' function expects the interface as an argument, and
+-- computes the correct value of ancestors field without reading it. We then
+-- use this function when creating the interface value in the first place.
diff --git a/cmd/capnpc-haskell/Trans/FlatToRaw.hs b/cmd/capnpc-haskell/Trans/FlatToRaw.hs
--- a/cmd/capnpc-haskell/Trans/FlatToRaw.hs
+++ b/cmd/capnpc-haskell/Trans/FlatToRaw.hs
@@ -20,7 +20,9 @@
         }
 
 nodeToDecls :: Flat.Node -> [Raw.Decl]
-nodeToDecls Flat.Node{name=Name.CapnpQ{fileId, local}, union_} = case union_ of
+nodeToDecls Flat.Node{name=Name.CapnpQ{fileId, local}, union_, typeParams} =
+  let typeParams' = map C.paramName typeParams in
+  case union_ of
     Flat.Enum variants ->
         [ Raw.Enum
             { typeCtor = local
@@ -29,30 +31,32 @@
         ]
     Flat.Struct{fields, isGroup, dataWordCount, pointerCount, union} ->
         concat
-            [ [ Raw.StructWrapper { typeCtor = local } ]
+            [ [ Raw.StructWrapper { typeCtor = local, typeParams = typeParams' } ]
             , if isGroup
                 then
                     []
                 else
                     [ Raw.StructInstances
                         { typeCtor = local
+                        , typeParams = typeParams'
                         , dataWordCount
                         , pointerCount
                         }
                     ]
-            , concatMap (fieldToDecls local) fields
+            , concatMap (fieldToDecls local typeParams') fields
             , case union of
                 Nothing -> []
                 Just Flat.Union{variants, tagOffset} ->
                     let local' = Name.mkSub local "" in
                     [ Raw.UnionVariant
                         { parentTypeCtor = local
+                        , typeParams = typeParams'
                         , tagOffset
                         , unionDataCtors =
                             [ Raw.Variant
                                 { name = local
                                 , tagValue
-                                , locType = fmap (\Flat.Node{name} -> name) fieldLocType
+                                , locType = C.bothMap (\Flat.Node{name} -> name) fieldLocType
                                 }
                             | Flat.Variant
                                 { field = Flat.Field
@@ -65,17 +69,32 @@
                         }
                     , Raw.Getter
                         { fieldName = local'
+                        , typeParams = typeParams'
                         , containerType = local
                         , fieldLocType = C.HereField $ C.StructType Name.CapnpQ
                             { fileId
                             , local = local'
                             }
+                            (C.ListBrand
+                                [ C.PtrParam C.TypeParamRef
+                                    { paramName
+                                    , paramIndex
+                                    , paramScope = scopeName
+                                    }
+                                | C.TypeParamRef
+                                    { paramName
+                                    , paramIndex
+                                    , paramScope=Flat.Node{name=scopeName}
+                                    } <- typeParams
+                                ]
+                            )
                         }
                     ] ++
                     [ Raw.Setter
                         { fieldName
+                        , typeParams = typeParams'
                         , containerType = local
-                        , fieldLocType = fmap (\Flat.Node{name} -> name) fieldLocType
+                        , fieldLocType = C.bothMap (\Flat.Node{name} -> name) fieldLocType
                         , tag = Just Raw.TagSetter
                             { tagOffset
                             , tagValue
@@ -96,6 +115,7 @@
                     -- uint16 field in the same spot:
                     [ Raw.Setter
                         { fieldName = Name.mkSub local "unknown'"
+                        , typeParams = typeParams'
                         , containerType = local
                         , fieldLocType = C.DataField
                             (Raw.tagOffsetToDataLoc tagOffset)
@@ -107,22 +127,28 @@
     Flat.Interface{} ->
         [ Raw.InterfaceWrapper
             { typeCtor = local
+            , typeParams = typeParams'
             }
         ]
     Flat.Constant{ value } ->
         [ Raw.Constant
             { name = local
-            , value = fmap (\Flat.Node{name} -> name) value
+            , value = C.bothMap (\Flat.Node{name} -> name) value
             }
         ]
     Flat.Other -> []
 
-fieldToDecls :: Name.LocalQ -> Flat.Field -> [Raw.Decl]
-fieldToDecls containerType Flat.Field{fieldName=Name.CapnpQ{local=fieldName}, fieldLocType} =
+fieldToDecls :: Name.LocalQ -> [Name.UnQ] -> Flat.Field -> [Raw.Decl]
+fieldToDecls
+    containerType
+    typeParams
+    Flat.Field{fieldName=Name.CapnpQ{local=fieldName}, fieldLocType}
+    =
     [ Raw.Getter
         { fieldName
+        , typeParams
         , containerType
-        , fieldLocType = fmap (\Flat.Node{name} -> name) fieldLocType
+        , fieldLocType = C.bothMap (\Flat.Node{name} -> name) fieldLocType
         }
     ]
     ++
@@ -132,7 +158,8 @@
             [ Raw.Setter
                 { fieldName
                 , containerType
-                , fieldLocType = fmap (\Flat.Node{name} -> name) fieldLocType
+                , typeParams
+                , fieldLocType = C.bothMap (\Flat.Node{name} -> name) fieldLocType
                 , tag = Nothing
                 }
             ]
@@ -141,6 +168,7 @@
         C.PtrField ptrIndex _ ->
             [ Raw.HasFn
                 { fieldName
+                , typeParams
                 , containerType
                 , ptrIndex
                 }
@@ -152,32 +180,36 @@
         C.PtrField _ (C.ListOf _) ->
             [ Raw.NewFn
                 { fieldName
+                , typeParams
                 , containerType
-                , fieldLocType = fmap (\Flat.Node{name} -> name) fieldLocType
+                , fieldLocType = C.bothMap (\Flat.Node{name} -> name) fieldLocType
                 , newFnType = Raw.NewList
                 }
             ]
         C.PtrField _ (C.PrimPtr C.PrimText) ->
             [ Raw.NewFn
                 { fieldName
+                , typeParams
                 , containerType
-                , fieldLocType = fmap (\Flat.Node{name} -> name) fieldLocType
+                , fieldLocType = C.bothMap (\Flat.Node{name} -> name) fieldLocType
                 , newFnType = Raw.NewText
                 }
             ]
         C.PtrField _ (C.PrimPtr C.PrimData) ->
             [ Raw.NewFn
                 { fieldName
+                , typeParams
                 , containerType
-                , fieldLocType = fmap (\Flat.Node{name} -> name) fieldLocType
+                , fieldLocType = C.bothMap (\Flat.Node{name} -> name) fieldLocType
                 , newFnType = Raw.NewData
                 }
             ]
         C.PtrField _ (C.PtrComposite _) ->
             [ Raw.NewFn
                 { fieldName
+                , typeParams
                 , containerType
-                , fieldLocType = fmap (\Flat.Node{name} -> name) fieldLocType
+                , fieldLocType = C.bothMap (\Flat.Node{name} -> name) fieldLocType
                 , newFnType = Raw.NewStruct
                 }
             ]
diff --git a/cmd/capnpc-haskell/Trans/HaskellToText.hs b/cmd/capnpc-haskell/Trans/HaskellToText.hs
--- a/cmd/capnpc-haskell/Trans/HaskellToText.hs
+++ b/cmd/capnpc-haskell/Trans/HaskellToText.hs
@@ -7,6 +7,7 @@
 import Data.String                  (fromString)
 import Text.PrettyPrint.Leijen.Text (hcat, vcat)
 
+import qualified Data.Text                    as T
 import qualified Data.Text.Lazy               as LT
 import qualified Text.PrettyPrint.Leijen.Text as PP
 
@@ -86,15 +87,26 @@
         , format (TCtx ctx typ)
         , whereBlock defs
         ]
-    format DcClass{ctx, name, params, decls} = hcat
+    format DcClass{ctx, name, params, funDeps, decls} = hcat
         [ "class "
         , format $
             TCtx ctx $
                 TApp
                     (TLName name)
                     [TLName (Name.unQToLocal p) | p <- params]
+        , formatFunDeps funDeps
         , whereBlock decls
         ]
+
+formatFunDeps :: [(T.Text, T.Text)] -> PP.Doc
+formatFunDeps [] = ""
+formatFunDeps deps = mconcat
+    [ " | "
+    , mconcat $ intersperse ", "
+        [ PP.textStrict a <> " -> " <> PP.textStrict b
+        | (a, b) <- deps
+        ]
+    ]
 
 whereBlock :: Format a => [a] -> PP.Doc
 whereBlock [] = ""
diff --git a/cmd/capnpc-haskell/Trans/PureToHaskell.hs b/cmd/capnpc-haskell/Trans/PureToHaskell.hs
--- a/cmd/capnpc-haskell/Trans/PureToHaskell.hs
+++ b/cmd/capnpc-haskell/Trans/PureToHaskell.hs
@@ -57,7 +57,7 @@
 --
 -- For example, this is True for Enums, basic integers, etc. but
 -- False for structs, interfaces, etc.
-cerialEq :: C.Type r -> Bool
+cerialEq :: C.Type b r -> Bool
 cerialEq C.VoidType          = True
 cerialEq (C.WordType _)      = True
 cerialEq (C.CompositeType _) = False
@@ -89,9 +89,11 @@
             , "DuplicateRecordFields"
             , "FlexibleContexts"
             , "FlexibleInstances"
+            , "FunctionalDependencies"
             , "RecordWildCards"
             , "MultiParamTypeClasses"
             , "TypeFamilies"
+            , "UndecidableInstances"
             ]
         , modExports = Just $
             [ExportGCtors (gName (rawModule fileId) name) | name <- reExportEnums]
@@ -130,10 +132,10 @@
         [ iType "Cerial" [tuName "msg", TGName rawName] (TGName rawName)
         , iValue "decerialize" [] (eStd_ "pure")
         ]
-    : instance_ [] ["Classes"] "Cerialize" [TGName rawName]
+    : instance_ [] ["Classes"] "Cerialize" [tuName "s", TGName rawName]
         [ iValue "cerialize" [PVar "_"] (eStd_ "pure")
         ]
-    : [ instance_ [] ["Classes"] "Cerialize" [t]
+    : [ instance_ [] ["Classes"] "Cerialize" [tuName "s", t]
         [ iValue "cerialize" [] (egName ["Classes"] "cerializeBasicVec")
         ]
       | t <- take 6 $ drop 1 $ iterate
@@ -170,6 +172,7 @@
 dataToDataDecl :: Word64 -> P.Data -> [Decl]
 dataToDataDecl thisMod P.Data
         { typeName
+        , typeParams
         , cerialName
         , firstClass
         , def
@@ -177,7 +180,7 @@
     let unknownCtor = Name.mkSub cerialName "unknown'" in
     [ DcData Data
         { dataName = Name.localToUnQ typeName
-        , typeArgs = []
+        , typeArgs = map (TVar . Name.typeVarName) typeParams
         , derives =
             ["Std_.Show", "Std_.Eq", "Generics.Generic"]
         , dataNewtype = False
@@ -207,12 +210,48 @@
         }
     ]
 
+typeParamsDecerializeCtx :: [Name.UnQ] -> [Type]
+typeParamsDecerializeCtx typeParams =
+    let
+        vars = typeParamVars typeParams
+        constMsg = tgName ["Message"] "ConstMsg"
+        cerial msg v = TApp (tgName ["Classes"] "Cerial") [msg, v]
+    in
+    concat
+        [ [ TApp (tgName ["Classes"] "Decerialize") [v]
+          , TApp
+            (tgName ["Classes"] "FromPtr")
+            [ constMsg
+            , cerial constMsg v
+            ]
+          ]
+        | v <- vars
+        ]
+
+typeParamsCerializeCtx :: [Name.UnQ] -> [Type]
+typeParamsCerializeCtx typeParams =
+    typeParamsDecerializeCtx typeParams ++ concat
+        [ [ TApp (tgName ["Classes"] "Cerialize") [tuName "s", v]
+          , TApp (tgName ["Classes"] "ToPtr")
+               [ tuName "s"
+               , TApp (tgName ["Classes"] "Cerial")
+                   [ TApp (tgName ["Message"] "MutMsg") [tuName "s"]
+                   , v
+                   ]
+               ]
+           ]
+        | v <- typeParamVars typeParams
+        ]
+
 dataToSimpleInstances :: Word64 -> P.Data -> [Decl]
-dataToSimpleInstances _thisMod P.Data{ typeName } =
-    [ instance_ [] ["Default"] "Default" [TLName typeName]
+dataToSimpleInstances _thisMod P.Data{ typeName, typeParams } =
+    let typ = typeWithParams typeName typeParams
+        ctx = typeParamsDecerializeCtx typeParams
+    in
+    [ instance_ ctx ["Default"] "Default" [typ]
         [ iValue "def" [] (egName ["GenHelpersPure"] "defaultStruct")
         ]
-    , instance_ [] ["Classes"] "FromStruct" [tgName ["Message"] "ConstMsg", TLName typeName]
+    , instance_ ctx ["Classes"] "FromStruct" [tgName ["Message"] "ConstMsg", typ]
         [ iValue "fromStruct" [PVar "struct"] $ EBind
             (EApp (egName ["Classes"] "fromStruct") [euName "struct"])
             (egName ["Classes"] "decerialize")
@@ -222,13 +261,21 @@
 dataToDecerialize :: Word64 -> P.Data -> [Decl]
 dataToDecerialize thisMod P.Data
         { typeName
+        , typeParams
         , cerialName
         , firstClass
         , def
         } =
-    [ instance_ [] ["Classes"] "Decerialize" [TLName typeName]
-        [ iType "Cerial" [tuName "msg", TLName typeName] $
-            TApp (tgName (rawModule thisMod) cerialName) [tuName "msg"]
+    let typ = typeWithParams typeName typeParams
+        ctx = typeParamsDecerializeCtx typeParams
+    in
+    [ instance_ ctx ["Classes"] "Decerialize" [typ]
+        [ iType "Cerial" [tuName "msg", typ] $
+            TApp (tgName (rawModule thisMod) cerialName) $
+                [ TApp (tgName ["Classes"] "Cerial") [tuName "msg", v]
+                | v <- typeParamVars typeParams
+                ]
+                ++ [tuName "msg"]
         , iValue "decerialize" [PVar "raw"] $
             case def of
                 P.Sum variants ->
@@ -305,11 +352,13 @@
 dataToMarshal :: Word64 -> P.Data -> [Decl]
 dataToMarshal thisMod P.Data
         { typeName
+        , typeParams
         , cerialName
         , firstClass
         , def
         } =
-    [ instance_ [] ["Classes"] "Marshal" [TLName typeName]
+    let typ = typeWithParams typeName typeParams in
+    [ instance_ (typeParamsCerializeCtx typeParams) ["Classes"] "Marshal" [TVar "s", typ]
         [ iValue "marshalInto" [PVar "raw_", PVar "value_"] $
             case def of
                 P.Sum variants ->
@@ -375,22 +424,25 @@
         ]
 
 firstClassInstances :: Word64 -> P.Data -> [Decl]
-firstClassInstances _thisMod P.Data{ typeName } =
-    [ instance_ [] ["Classes"] "Cerialize" [TLName typeName] []
-    , instance_ [] ["Classes"] "Cerialize" [TApp (tgName ["V"] "Vector") [TLName typeName]]
+firstClassInstances _thisMod P.Data{ typeName, typeParams } =
+    let typ = typeWithParams typeName typeParams
+        ctx = typeParamsCerializeCtx typeParams
+    in
+    [ instance_ ctx ["Classes"] "Cerialize" [tuName "s", typ] []
+    , instance_ ctx ["Classes"] "Cerialize" [tuName "s", TApp (tgName ["V"] "Vector") [typ]]
         [ iValue "cerialize" [] (egName ["GenHelpersPure"] "cerializeCompositeVec")
         ]
     ] ++
-    -- Generate instances of Cerialize (Vector (Vector ... t)) up to some reasonable
+    -- Generate instances of Cerialize s (Vector (Vector ... t)) up to some reasonable
     -- nesting level. I(zenhack) can't figure out how to get a general case
-    -- Cerialize (Vector a) => Cerialize (Vector (Vector a)) to type check, so this
+    -- Cerialize s (Vector a) => Cerialize s (Vector (Vector a)) to type check, so this
     -- will have to do for now.
-    [ instance_ [] ["Classes"] "Cerialize" [t]
+    [ instance_ ctx ["Classes"] "Cerialize" [tuName "s", t]
         [ iValue "cerialize" [] (egName ["GenHelpersPure"] "cerializeBasicVec")
         ]
     | t <- take 6 $ drop 2 $ iterate
             (\t -> TApp (tgName ["V"] "Vector") [t])
-            (TLName typeName)
+            typ
     ]
 
 ifaceToDecls :: Word64 -> P.Interface -> [Decl]
@@ -404,7 +456,7 @@
 
 -- | Declare the newtype wrapper for clients of this interface.
 ifaceClientDecl :: Word64 -> P.Interface -> Decl
-ifaceClientDecl _thisMod P.IFace{ name=Name.CapnpQ{local=name} } =
+ifaceClientDecl _thisMod P.IFace{ name=Name.CapnpQ{local=name}, typeParams } =
     DcData Data
         { dataName = Name.localToUnQ name
         , dataNewtype = True
@@ -414,7 +466,7 @@
                 , dvArgs = APos [tgName ["Message"] "Client"]
                 }
             ]
-        , typeArgs = []
+        , typeArgs = map (TVar . Name.typeVarName . C.paramName) typeParams
         , derives =
             [ "Std_.Show"
             , "Std_.Eq"
@@ -424,14 +476,17 @@
 
 -- | define the *'server_ class for the interface.
 ifaceClassDecl :: Word64 -> P.Interface -> Decl
-ifaceClassDecl thisMod P.IFace { name=Name.CapnpQ{local=name}, methods, supers } =
+ifaceClassDecl thisMod P.IFace { name=Name.CapnpQ{local=name}, methods, supers, typeParams } =
+    let typeParamNames = map (Name.typeVarName . C.paramName) typeParams in
     DcClass
         { ctx =
             let superConstraints =
                     -- Add class constraints for superclasses:
                     [ let superClass = pureTName thisMod fileId (Name.mkSub local "server_")
-                      in TApp superClass [tuName "m", tuName "cap"]
-                    | P.IFace{name=Name.CapnpQ{local, fileId}} <- supers
+                      in TApp superClass $
+                            [tuName "m", tuName "cap"]
+                            ++ map (typeToType thisMod . C.PtrType) types
+                    | (P.IFace{name=Name.CapnpQ{local, fileId}}, C.ListBrand types) <- supers
                     ]
             in
             TApp (tgName ["MonadIO"] "MonadIO") [tuName "m"]
@@ -442,7 +497,8 @@
                 [] -> [ TApp (tgName ["Server"] "Server") [tuName "m", tuName "cap"] ]
                 _ -> superConstraints
         , name = Name.mkSub name "server_"
-        , params = ["m", "cap"]
+        , params = map Name.UnQ $ ["m", "cap"] ++ typeParamNames
+        , funDeps = [ ("cap", v) | v <- typeParamNames ]
         , decls =
             let mkName = mkMethodName name in
             CdMinimal [ mkName name | P.Method{name} <- methods ]
@@ -454,8 +510,8 @@
                             , TApp
                                 (tgName ["Server"] "MethodHandler")
                                 [ tuName "m"
-                                , typeToType thisMod $ C.CompositeType $ C.StructType paramType
-                                , typeToType thisMod $ C.CompositeType $ C.StructType resultType
+                                , typeToType thisMod $ C.CompositeType paramType
+                                , typeToType thisMod $ C.CompositeType resultType
                                 ]
                             ]
                         )
@@ -477,16 +533,19 @@
 
 -- | Define the export_Foo function for the interface.
 ifaceExportFn :: Word64 -> P.Interface -> Decl
-ifaceExportFn thisMod iface@P.IFace { name=Name.CapnpQ{ local }, ancestors } =
+ifaceExportFn thisMod iface@P.IFace { name=Name.CapnpQ{ local }, typeParams, ancestors } =
+    let typeParamVars = map (TVar . Name.typeVarName . C.paramName) typeParams in
     DcValue
         { typ = TCtx
-            [ TApp (TLName (Name.mkSub local "server_")) [tStd_ "IO", tuName "a"]
-            , TApp (tgName ["STM"] "MonadSTM") [tuName "m"]
+            [ TApp (tgName ["STM"] "MonadSTM") [tuName "m"]
+            , TApp
+                (TLName (Name.mkSub local "server_"))
+                $ [tStd_ "IO", tuName "cap"] ++ typeParamVars
             ]
             (TFn
                 [ tgName ["Supervisors"] "Supervisor"
-                , tuName "a"
-                , TApp (tuName "m") [TLName local]
+                , tuName "cap"
+                , TApp (tuName "m") [TApp (TLName local) typeParamVars]
                 ]
             )
         , def = DfValue
@@ -532,7 +591,7 @@
                                         , interfaceId
                                         , methods
                                         }
-                                    <- iface:ancestors
+                                    <- iface : map fst ancestors
                                     ]
                                     ++
                                     [ ( PVar "_"
@@ -548,20 +607,28 @@
 
 -- | Declare instances for clients for this interface.
 ifaceInstances :: Word64 -> P.Interface -> [Decl]
-ifaceInstances thisMod iface@P.IFace{ name=Name.CapnpQ{local=name} } =
-    [ instance_ [] ["Rpc"] "IsClient" [TLName name]
+ifaceInstances thisMod iface@P.IFace{ name=Name.CapnpQ{local=name}, typeParams } =
+    let typ = typeWithParams name (map C.paramName typeParams) in
+    [ instance_ [] ["Rpc"] "IsClient" [typ]
         [ iValue "fromClient" [] (ELName name)
         , iValue "toClient" [PLCtor name [PVar "client"]] (euName "client")
         ]
-    , instance_ [] ["Classes"] "FromPtr" [tuName "msg", TLName name]
+    , instance_ [] ["Classes"] "FromPtr" [tuName "msg", typ]
         [ iValue "fromPtr" [] (egName ["RpcHelpers"] "isClientFromPtr")
         ]
-    , instance_ [] ["Classes"] "ToPtr" [tuName "s", TLName name]
+    , instance_ [] ["Classes"] "ToPtr" [tuName "s", typ]
         [ iValue "toPtr" [] (egName ["RpcHelpers"] "isClientToPtr")
         ]
-    , instance_ [] ["Classes"] "Decerialize" [TLName name]
-        [ iType "Cerial" [tuName "msg", TLName name] $
-            TApp (tgName (rawModule thisMod) name) [tuName "msg"]
+    , instance_ [] ["Classes"] "Decerialize" [typ]
+        [ iType "Cerial" [tuName "msg", typ] $
+            TApp (tgName (rawModule thisMod) name) $
+                [ TApp (tgName ["Classes"] "Cerial")
+                    [ tuName "msg"
+                    , TVar (Name.typeVarName (C.paramName t))
+                    ]
+                | t <- typeParams
+                ]
+                ++ [tuName "msg"]
         , iValue "decerialize"
             [ pgName (rawModule thisMod) (Name.mkSub name "newtype_") [PVar "maybeCap"]
             ]
@@ -580,7 +647,7 @@
                 ]
             )
         ]
-    , instance_ [] ["Classes"] "Cerialize" [TLName name]
+    , instance_ [] ["Classes"] "Cerialize" [tuName "s", typ]
         [ iValue "cerialize" [PVar "msg", PLCtor name [PVar "client"]] $
             EFApp
                 (egName (rawModule thisMod) (Name.mkSub name "newtype_"))
@@ -606,24 +673,25 @@
 -- | Instance declarations for this interface's client for its *'server_ class
 -- and those of its ancestors.
 ifaceServerInstances :: Word64 -> P.Interface -> [Decl]
-ifaceServerInstances thisMod iface@P.IFace{ name=Name.CapnpQ{local=name}, ancestors } =
+ifaceServerInstances thisMod iface@P.IFace{ name=Name.CapnpQ{local=name}, typeParams, ancestors } =
     DcInstance
         { ctx = []
-        , typ = TApp (tgName ["Server"] "Server") [tStd_ "IO", TLName name]
+        , typ = TApp (tgName ["Server"] "Server") [tStd_ "IO", typ]
         , defs = []
         }
-    : map go (iface:ancestors)
+    : map go ((iface, C.ListBrand (map C.PtrParam typeParams)):ancestors)
   where
-    go P.IFace { name=Name.CapnpQ{local, fileId}, interfaceId, methods } =
+    typ = typeWithParams name (map C.paramName typeParams)
+    go (P.IFace { name=Name.CapnpQ{local, fileId}, interfaceId, methods }, C.ListBrand types) =
         let className = Name.mkSub local "server_"
             classType = pureTName thisMod fileId className
+            classArgs = map (typeToType thisMod . C.PtrType) types
         in
         -- Can't use 'instance_' here, because we don't know ahead of time what
         -- module the class is in.
         DcInstance
             { ctx = []
-            , typ =
-                TApp classType [tStd_ "IO", TLName name]
+            , typ = TApp classType $ [tStd_ "IO", typ] ++ classArgs
             , defs =
                 [ let methodName = mkMethodName local mname in
                   iValue methodName [PLCtor name [PVar "client"]] $
@@ -672,7 +740,7 @@
     -- ^ The name of the field to marshal, qualified within the current module.
     , from        :: Name.UnQ
     -- ^ A variable holding the value to marshal
-    , type_       :: C.Type Name.CapnpQ
+    , type_       :: C.Type (C.ListBrand Name.CapnpQ) Name.CapnpQ
     , inUnion     :: !Bool
     -- ^ whether the parent of this field is a union
     }
@@ -709,7 +777,7 @@
 fieldToField :: Word64 -> P.Field -> (Name.UnQ, Type)
 fieldToField thisMod P.Field{name, type_} = (name, typeToType thisMod type_)
 
-typeToType :: Word64 -> C.Type Name.CapnpQ -> Type
+typeToType :: Word64 -> C.Type (C.ListBrand Name.CapnpQ) Name.CapnpQ -> Type
 typeToType _thisMod C.VoidType =
     TUnit
 typeToType _thisMod (C.WordType (C.PrimWord ty)) =
@@ -725,10 +793,10 @@
         tgName (rawModule fileId) local
     else
         tgName (pureModule fileId) local
-typeToType thisMod (C.CompositeType (C.StructType n)) =
-    nameToType thisMod n
-typeToType thisMod (C.PtrType (C.PtrComposite (C.StructType n))) =
-    nameToType thisMod n
+typeToType thisMod (C.CompositeType (C.StructType n b)) =
+    nameToType thisMod n b
+typeToType thisMod (C.PtrType (C.PtrComposite (C.StructType n b))) =
+    nameToType thisMod n b
 typeToType thisMod (C.PtrType (C.ListOf ty)) =
     TApp (tgName ["V"] "Vector") [typeToType thisMod ty]
 typeToType _thisMod (C.PtrType (C.PrimPtr C.PrimText)) =
@@ -738,13 +806,27 @@
 typeToType _thisMod (C.PtrType (C.PrimPtr (C.PrimAnyPtr _))) =
     -- TODO: distinguish different pointer types.
     TApp (tStd_ "Maybe") [tgName ["UntypedPure"] "Ptr"]
-typeToType thisMod (C.PtrType (C.PtrInterface n)) =
-    nameToType thisMod n
+typeToType thisMod (C.PtrType (C.PtrInterface (C.InterfaceType n b))) =
+    nameToType thisMod n b
+typeToType _thisMod (C.PtrType (C.PtrParam C.TypeParamRef{paramName})) =
+    TVar (Name.typeVarName paramName)
 
-nameToType :: Word64 -> Name.CapnpQ -> Type
-nameToType thisMod Name.CapnpQ{local, fileId}
-    | thisMod == fileId = TLName local
-    | otherwise = tgName (pureModule fileId) local
+typeParamVars :: [Name.UnQ] -> [Type]
+typeParamVars = map (TVar . Name.typeVarName)
+
+typeWithParams :: Name.LocalQ -> [Name.UnQ] -> Type
+typeWithParams f xs =
+    TApp (TLName f) $ typeParamVars xs
+
+nameToType :: Word64 -> Name.CapnpQ -> C.ListBrand Name.CapnpQ -> Type
+nameToType thisMod Name.CapnpQ{local, fileId} (C.ListBrand args) =
+    let head
+            | thisMod == fileId = TLName local
+            | otherwise = tgName (pureModule fileId) local
+    in
+    case args of
+        [] -> head
+        _  -> TApp head (map (typeToType thisMod . C.PtrType) args)
 
 rawModule :: Word64 -> [T.Text]
 rawModule modId =
diff --git a/cmd/capnpc-haskell/Trans/RawToHaskell.hs b/cmd/capnpc-haskell/Trans/RawToHaskell.hs
--- a/cmd/capnpc-haskell/Trans/RawToHaskell.hs
+++ b/cmd/capnpc-haskell/Trans/RawToHaskell.hs
@@ -78,14 +78,16 @@
     imp parts importAs = ImportAs {parts, importAs}
 
 declToDecls :: Word64 -> Raw.Decl -> [Decl]
-declToDecls thisMod Raw.UnionVariant{parentTypeCtor, tagOffset, unionDataCtors} =
+declToDecls thisMod Raw.UnionVariant{parentTypeCtor, typeParams, tagOffset, unionDataCtors} =
     let unknownCtor = Name.mkSub parentTypeCtor "unknown'"
         typeCtor = Name.mkSub parentTypeCtor ""
+        containerTypeType = containerTypeToType typeCtor typeParams
+        typeParamNames = map (TVar . Name.typeVarName) typeParams
     in
     [ DcData Data
         { dataName = Name.localToUnQ typeCtor
         , dataNewtype = False
-        , typeArgs = [TVar "msg"]
+        , typeArgs = typeParamNames ++ [TVar "msg"]
         , dataVariants =
             [ DataVariant
                 { dvCtorName = Name.localToUnQ dataCtor
@@ -106,7 +108,12 @@
             ]
         , derives = []
         }
-    , instance_ [] ["Classes"] "FromStruct" [TVar "msg", TApp (TLName typeCtor) [TVar "msg"]]
+    , let ctx =
+            [ TApp (tgName ["Classes"] "FromPtr") [TVar "msg", v]
+            | v <- typeParamNames
+            ]
+      in
+      instance_ ctx ["Classes"] "FromStruct" [TVar "msg", containerTypeType (TVar "msg")]
         [ iValue "fromStruct" [PVar "struct"] $ EDo
             [ DoBind "tag"
                 (EApp
@@ -290,18 +297,18 @@
                 Name.localToUnQ variantName
             , dvArgs = APos []
             }
-declToDecls _thisMod Raw.InterfaceWrapper{typeCtor} =
+declToDecls _thisMod Raw.InterfaceWrapper{typeCtor, typeParams} =
     let dataCtor = Name.mkSub typeCtor "newtype_" in
-    [ newtypeWrapper typeCtor ["msg"] $ TApp
+    [ newtypeWrapper typeCtor (map Name.typeVarName typeParams ++ ["msg"]) $ TApp
         (tStd_ "Maybe")
         [ TApp
             (tgName ["Untyped"] "Cap")
             [TVar "msg"]
         ]
-    , wrapperFromPtr typeCtor dataCtor
+    , wrapperFromPtr typeCtor typeParams dataCtor
     , instance_ [] ["Classes"] "ToPtr"
         [ TVar "s"
-        , TApp (TLName typeCtor) [TApp (tgName ["Message"] "MutMsg") [TVar "s"]]
+        , containerTypeToType typeCtor typeParams (TApp (tgName ["Message"] "MutMsg") [TVar "s"])
         ]
         [ iValue "toPtr" [PVar "msg", PLCtor dataCtor [PGCtor (std_ "Nothing") []]]
             (EApp (eStd_ "pure") [eStd_ "Nothing"])
@@ -318,39 +325,33 @@
             )
         ]
     ]
-declToDecls _thisMod Raw.StructWrapper{typeCtor} =
-    let dataCtor = Name.mkSub typeCtor "newtype_" in
-    [ newtypeWrapper typeCtor ["msg"] $ TApp
+declToDecls _thisMod Raw.StructWrapper{typeCtor, typeParams} =
+    let dataCtor = Name.mkSub typeCtor "newtype_"
+        containerTypeType = containerTypeToType typeCtor typeParams
+    in
+    [ newtypeWrapper typeCtor (map Name.typeVarName typeParams ++ ["msg"]) $ TApp
         (tgName ["Untyped"] "Struct")
         [TVar "msg"]
 
     -- There are several type classes that are defined for all structs:
-    , instance_ [] ["Untyped"] "TraverseMsg" [TLName typeCtor]
-        [ iValue "tMsg" [PVar "f", PLCtor dataCtor [PVar "s"]] $ EFApp
-            (ELName dataCtor)
-            [EApp (egName ["Untyped"] "tMsg") [ELName "f", ELName "s"]]
-        ]
-    , instance_ [] ["Classes"] "FromStruct"
-        [ TVar "msg", TApp (TLName typeCtor) [TVar "msg"]
-        ]
+    , instance_ [] ["Classes"] "FromStruct" [TVar "msg", containerTypeType (TVar "msg")]
         [ iValue "fromStruct" [PVar "struct"] $ EApp
             (eStd_ "pure")
             [EApp (ELName dataCtor) [ELName "struct"]]
         ]
-    , instance_ [] ["Classes"] "ToStruct"
-        [TVar "msg", TApp (TLName typeCtor) [TVar "msg"]]
+    , instance_ [] ["Classes"] "ToStruct" [TVar "msg", containerTypeType (TVar "msg")]
         [ iValue "toStruct" [PLCtor dataCtor [PVar "struct"]]
             (ELName "struct")
         ]
-    , instance_ [] ["Untyped"] "HasMessage" [TApp (TLName typeCtor) [TVar "msg"]]
+    , instance_ [] ["Untyped"] "HasMessage" [containerTypeType (TVar "msg")]
         [ IdType $ TypeAlias
             "InMessage"
-            [ TApp (TLName typeCtor) [TVar "msg"] ]
+            [ containerTypeType (TVar "msg") ]
             (TVar "msg")
         , iValue "message" [PLCtor dataCtor [PVar "struct"]]
             (EApp (egName ["Untyped"] "message") [ELName "struct"])
         ]
-    , instance_ [] ["Untyped"] "MessageDefault" [TApp (TLName typeCtor) [TVar "msg"]]
+    , instance_ [] ["Untyped"] "MessageDefault" [containerTypeType (TVar "msg")]
         [ iValue "messageDefault" [PVar "msg"] $ EApp
             (ELName dataCtor)
             [ EApp
@@ -359,16 +360,15 @@
             ]
         ]
     ]
-declToDecls _thisMod Raw.StructInstances{typeCtor, dataWordCount, pointerCount} =
+declToDecls _thisMod Raw.StructInstances{typeCtor, typeParams, dataWordCount, pointerCount} =
     let listCtor = Name.mkSub typeCtor "List_"
         dataCtor = Name.mkSub typeCtor "newtype_"
+        containerTypeType = containerTypeToType typeCtor typeParams
     in
-    [ wrapperFromPtr typeCtor dataCtor
+    [ wrapperFromPtr typeCtor typeParams dataCtor
     , instance_ [] ["Classes"] "ToPtr"
         [ TVar "s"
-        , TApp
-            (TLName typeCtor)
-            [TApp (tgName ["Message"] "MutMsg") [TVar "s"]]
+        , containerTypeType $ TApp (tgName ["Message"] "MutMsg") [TVar "s"]
         ]
         [ iValue
             "toPtr"
@@ -382,9 +382,7 @@
         ]
     , instance_ [] ["Classes"] "Allocate"
         [ TVar "s"
-        , TApp
-            (TLName typeCtor)
-            [TApp (tgName ["Message"] "MutMsg") [TVar "s"]]
+        , containerTypeType $ TApp (tgName ["Message"] "MutMsg") [TVar "s"]
         ]
         [ iValue "new" [PVar "msg"] $ EFApp
             (ELName dataCtor)
@@ -398,17 +396,13 @@
         ]
     , instance_ [] ["Basics"] "ListElem"
         [ TVar "msg"
-        , TApp
-            (TLName typeCtor)
-            [TVar "msg"]
+        , containerTypeType $ TVar "msg"
         ]
         [ IdData Data
             { dataName = "List"
             , typeArgs =
                 [ TVar "msg"
-                , TApp
-                    (TLName typeCtor)
-                    [TVar "msg"]
+                , containerTypeType (TVar "msg")
                 ]
             , dataVariants =
                 [ DataVariant
@@ -453,9 +447,7 @@
         ]
     , instance_ [] ["Basics"] "MutListElem"
         [ TVar "s"
-        , TApp
-            (TLName typeCtor)
-            [ TApp (tgName ["Message"] "MutMsg") [TVar "s"] ]
+        , containerTypeType $ TApp (tgName ["Message"] "MutMsg") [TVar "s"]
         ]
         [ iValue "setIndex"
             [ PLCtor dataCtor [PVar "elt"]
@@ -481,19 +473,30 @@
             ]
         ]
     ]
-declToDecls thisMod Raw.Getter{fieldName, fieldLocType, containerType} =
-    let containerDataCtor = Name.mkSub containerType "newtype_" in
+declToDecls thisMod Raw.Getter{fieldName, fieldLocType, containerType, typeParams} =
+    let containerDataCtor = Name.mkSub containerType "newtype_"
+        fieldType = typeToType thisMod (C.fieldType fieldLocType) (TVar "msg")
+        isPtrType = case C.fieldType fieldLocType of
+            C.PtrType _       -> True
+            C.CompositeType _ -> True
+            _                 -> False
+    in
     [ DcValue
         { typ = TCtx
-            [readCtx "m" "msg"]
+            (readCtx "m" "msg"
+                : if isPtrType
+                    then
+                        [ case fieldLocType of
+                            C.HereField _ ->
+                                TApp (tgName ["Classes"] "FromStruct") [TVar "msg", fieldType]
+                            _ ->
+                                TApp (tgName ["Classes"] "FromPtr") [TVar "msg", fieldType]
+                        ]
+                    else []
+            )
             (TFn
-                [ TApp
-                    (TLName containerType)
-                    [ TVar "msg" ]
-                , TApp
-                    (TVar "m")
-                    [ typeToType thisMod (C.fieldType fieldLocType) (TVar "msg")
-                    ]
+                [ containerTypeToType containerType typeParams (TVar "msg")
+                , TApp (TVar "m") [fieldType]
                 ]
             )
         , def = DfValue
@@ -528,7 +531,7 @@
             }
         }
     ]
-declToDecls thisMod Raw.Setter{fieldName, fieldLocType, containerType, tag} =
+declToDecls thisMod Raw.Setter{fieldName, fieldLocType, containerType, typeParams, tag} =
     -- XXX: the way this is organized is a little gross; conceptually we have
     -- two kinds of setters:
     --
@@ -546,28 +549,38 @@
             thisMod
             (C.fieldType fieldLocType)
             tMutMsg
+        isPtrType = case C.fieldType fieldLocType of
+            C.PtrType _       -> True
+            C.CompositeType _ -> True
+            _                 -> False
+        containerTypeType = containerTypeToType containerType typeParams tMutMsg
     in
     [ DcValue
         { typ = TCtx
-            [rwCtx "m" "s"]
+            (rwCtx "m" "s"
+                : if isPtrType
+                    then
+                        [ case fieldLocType of
+                            C.HereField _ ->
+                                TApp (tgName ["Classes"] "FromStruct") [tMutMsg, fieldType]
+                            _ ->
+                                TApp (tgName ["Classes"] "ToPtr") [TVar "s", fieldType]
+                        ]
+                    else
+                        []
+            )
             (case fieldLocType of
                 C.HereField _ -> TFn
-                    [ TApp
-                        (TLName containerType)
-                        [tMutMsg]
+                    [ containerTypeType
                     , TApp (TVar "m") [fieldType]
                     ]
                 C.VoidField -> TFn
                     -- We don't need to pass in the redundant () value.
-                    [ TApp
-                        (TLName containerType)
-                        [tMutMsg]
+                    [ containerTypeType
                     , TApp (TVar "m") [fieldType]
                     ]
                 _ -> TFn
-                    [ TApp
-                        (TLName containerType)
-                        [tMutMsg]
+                    [ containerTypeType
                     , fieldType
                     , TApp (TVar "m") [TUnit]
                     ]
@@ -595,13 +608,15 @@
             }
         }
     ]
-declToDecls _thisMod Raw.HasFn{fieldName, containerType, ptrIndex} =
-    let containerDataCtor = Name.mkSub containerType "newtype_" in
+declToDecls _thisMod Raw.HasFn{fieldName, containerType, typeParams, ptrIndex} =
+    let containerDataCtor = Name.mkSub containerType "newtype_"
+        containerTypeType = containerTypeToType containerType typeParams (TVar "msg")
+    in
     [ DcValue
         { typ = TCtx
             [readCtx "m" "msg"]
             (TFn
-                [ TApp (TLName containerType) [ TVar "msg" ]
+                [ containerTypeType
                 , TApp (TVar "m") [tStd_ "Bool"]
                 ]
             )
@@ -618,13 +633,14 @@
             }
         }
     ]
-declToDecls thisMod Raw.NewFn{fieldName, containerType, fieldLocType, newFnType} =
+declToDecls thisMod Raw.NewFn{fieldName, containerType, typeParams, fieldLocType, newFnType} =
     -- TODO(cleanup): I(zenhack) am a little unhappy with having several case
     -- expressions to distinguish struct vs non-struct; we should refactor.
     let fieldType = typeToType
             thisMod
             (C.fieldType fieldLocType)
             tMutMsg
+        containerTypeType = containerTypeToType containerType typeParams tMutMsg
     in
     [ DcValue
         { typ = TCtx
@@ -634,7 +650,7 @@
                     -- length
                     Raw.NewStruct -> []
                     _             -> [tStd_ "Int"]
-                , [TApp (TLName containerType) [tMutMsg]]
+                , [containerTypeType]
                 , [TApp (TVar "m") [fieldType]]
                 ]
             )
@@ -706,8 +722,12 @@
             Capnp.setRoot rootPtr
             pure msg
 
+containerTypeToType :: Name.LocalQ -> [Name.UnQ] -> Type -> Type
+containerTypeToType name params msgTy =
+    TApp (TLName name) $ [ TVar (Name.typeVarName p) | p <- params ] ++ [msgTy]
 
-eSetValue :: C.FieldLocType Name.CapnpQ -> Exp
+
+eSetValue :: C.FieldLocType (C.ListBrand Name.CapnpQ) Name.CapnpQ -> Exp
 eSetValue = \case
     C.DataField dataLoc ty ->
         eSetWordField
@@ -818,10 +838,10 @@
         , derives = []
         }
 
-wrapperFromPtr :: Name.LocalQ -> Name.LocalQ -> Decl
-wrapperFromPtr typeCtor dataCtor =
+wrapperFromPtr :: Name.LocalQ -> [Name.UnQ] -> Name.LocalQ -> Decl
+wrapperFromPtr typeCtor typeParams dataCtor =
     instance_ [] ["Classes"] "FromPtr"
-        [ TVar "msg", TApp (TLName typeCtor) [TVar "msg"] ]
+        [ TVar "msg", containerTypeToType typeCtor typeParams (TVar "msg") ]
         [ iValue "fromPtr" [PVar "msg", PVar "ptr"] $ EFApp
             (ELName dataCtor)
             [ EApp
@@ -840,7 +860,7 @@
             (map Name.renderUnQ $ idToModule fileId)
             local
 
-typeToType :: Word64 -> C.Type Name.CapnpQ -> Type -> Type
+typeToType :: Word64 -> C.Type (C.ListBrand Name.CapnpQ) Name.CapnpQ -> Type -> Type
 typeToType thisMod ty msgTy = case ty of
     C.VoidType -> TUnit
     C.WordType (C.PrimWord ty) -> TPrim ty
@@ -854,13 +874,21 @@
         appV $ tgName ["Basics"] "Text"
     C.PtrType (C.PrimPtr C.PrimData) ->
         appV $ tgName ["Basics"] "Data"
-    C.PtrType (C.PtrComposite (C.StructType typeId)) ->
-        appV $ nameToType thisMod typeId
-    C.PtrType (C.PtrInterface typeId) ->
-        appV $ nameToType thisMod typeId
+    C.PtrType (C.PtrComposite (C.StructType typeId typeParams)) ->
+        namedType typeId typeParams
+    C.PtrType (C.PtrInterface (C.InterfaceType typeId typeParams)) ->
+        namedType typeId typeParams
     C.PtrType (C.PrimPtr (C.PrimAnyPtr _)) ->
         TApp (tStd_ "Maybe") [appV $ tgName ["Untyped"] "Ptr"]
-    C.CompositeType (C.StructType typeId) ->
-        appV $ nameToType thisMod typeId
+    C.PtrType (C.PtrParam C.TypeParamRef{paramName}) ->
+        TVar (Name.typeVarName paramName)
+    C.CompositeType (C.StructType typeId typeParams) ->
+        namedType typeId typeParams
   where
     appV t = TApp t [msgTy]
+    namedType :: Name.CapnpQ -> C.ListBrand Name.CapnpQ -> Type
+    namedType name (C.ListBrand [])     = appV $ nameToType thisMod name
+    namedType name (C.ListBrand args) =
+        TApp
+            (nameToType thisMod name)
+            (map (\t -> typeToType thisMod (C.PtrType t) msgTy) args ++ [msgTy])
diff --git a/cmd/capnpc-haskell/Trans/Stage1ToFlat.hs b/cmd/capnpc-haskell/Trans/Stage1ToFlat.hs
--- a/cmd/capnpc-haskell/Trans/Stage1ToFlat.hs
+++ b/cmd/capnpc-haskell/Trans/Stage1ToFlat.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE LambdaCase            #-}
 {-# LANGUAGE NamedFieldPuns        #-}
 {-# LANGUAGE OverloadedStrings     #-}
 -- Translate from the 'Stage1' IR to the 'Flat' IR.
@@ -8,8 +9,8 @@
 
 import Data.Word
 
-import qualified Data.Map as M
-import qualified Data.Set as S
+import qualified Data.Map    as M
+import qualified Data.Vector as V
 
 import qualified IR.Common as C
 import qualified IR.Flat   as Flat
@@ -36,7 +37,7 @@
 fileToNodes nodeMap Stage1.File{fileNodes, fileId} =
     concatMap
         (\(unQ, node) ->
-            nestedToNodes nodeMap fileId (Name.unQToLocal unQ) node
+            nestedToNodes nodeMap fileId (Name.unQToLocal unQ) node []
         )
         fileNodes
 
@@ -48,23 +49,92 @@
         , fileId
         }
 
+paramsToParams :: NodeMap -> Word64 -> [Name.UnQ] -> [C.TypeParamRef Flat.Node]
+paramsToParams nodeMap nodeId names =
+    [ C.TypeParamRef
+        { paramName = name
+        , paramIndex = i
+        , paramScope = nodeMap M.! nodeId
+        }
+    | (i, name) <- zip [0..] names
+    ]
+
+applyBrandNode :: C.MapBrand Flat.Node -> Flat.Node -> C.ListBrand Flat.Node
+applyBrandNode m Flat.Node{typeParams} = applyBrandParams typeParams m
+
+applyBrandParams :: [C.TypeParamRef Flat.Node] -> C.MapBrand Flat.Node -> C.ListBrand Flat.Node
+applyBrandParams params m = C.ListBrand $ map (`applyBrandParam` m) params
+
+applyBrandParam
+    :: C.TypeParamRef Flat.Node
+    -> C.MapBrand Flat.Node
+    -> C.PtrType (C.ListBrand Flat.Node) Flat.Node
+applyBrandParam param@C.TypeParamRef{paramIndex, paramScope=Flat.Node{nodeId}} (C.MapBrand m) =
+    case M.lookup nodeId m of
+        Nothing -> C.PtrParam param
+        Just (C.Bind bindings) ->
+            let binding = bindings V.! paramIndex in
+            case binding of
+                C.Unbound      -> C.PtrParam param
+                C.BoundType ty -> applyBrandPtrType ty
+
+type ApplyBrandFn f
+    = f (C.MapBrand Flat.Node) Flat.Node
+    -> f (C.ListBrand Flat.Node) Flat.Node
+
+applyBrandCompositeType :: ApplyBrandFn C.CompositeType
+applyBrandCompositeType (C.StructType n b) = C.StructType n (applyBrandNode b n)
+
+applyBrandInterfaceType :: ApplyBrandFn C.InterfaceType
+applyBrandInterfaceType (C.InterfaceType n b) = C.InterfaceType n (applyBrandNode b n)
+
+applyBrandValue :: ApplyBrandFn C.Value
+applyBrandValue = \case
+    C.VoidValue     -> C.VoidValue
+    C.WordValue v t -> C.WordValue v t
+    C.PtrValue t p  -> C.PtrValue (applyBrandPtrType t) p
+
+applyBrandPtrType :: ApplyBrandFn C.PtrType
+applyBrandPtrType = \case
+    C.ListOf t       -> C.ListOf $ applyBrandType t
+    C.PrimPtr p      -> C.PrimPtr p
+    C.PtrInterface t -> C.PtrInterface (applyBrandInterfaceType t)
+    C.PtrComposite t -> C.PtrComposite (applyBrandCompositeType t)
+    C.PtrParam p     -> C.PtrParam p
+
+applyBrandType :: ApplyBrandFn C.Type
+applyBrandType = \case
+    C.CompositeType t -> C.CompositeType $ applyBrandCompositeType t
+    C.VoidType        -> C.VoidType
+    C.WordType t      -> C.WordType t
+    C.PtrType t       -> C.PtrType $ applyBrandPtrType t
+
+applyBrandFieldLocType :: ApplyBrandFn C.FieldLocType
+applyBrandFieldLocType = \case
+    C.DataField l t -> C.DataField l t
+    C.PtrField i t  -> C.PtrField i $ applyBrandPtrType t
+    C.HereField t   -> C.HereField $ applyBrandCompositeType t
+    C.VoidField     -> C.VoidField
+
 -- | Generate @'Flat.Node'@s from a 'Stage1.Node' and its local name.
-nestedToNodes :: NodeMap -> Word64 -> Name.LocalQ -> Stage1.Node -> [Flat.Node]
+nestedToNodes :: NodeMap -> Word64 -> Name.LocalQ -> Stage1.Node -> [C.TypeParamRef Flat.Node] -> [Flat.Node]
 nestedToNodes
     nodeMap
     thisMod
     localName
     Stage1.Node
-        { nodeCommon = Stage1.NodeCommon{nodeId, nodeNested}
+        { nodeCommon = Stage1.NodeCommon{nodeId, nodeNested, nodeParams}
         , nodeUnion
         }
+    typeParams
     =
     mine ++ kids
   where
+    myParams = typeParams ++ paramsToParams nodeMap nodeId (V.toList nodeParams)
     kidsNS = Name.localQToNS localName
     kids = concatMap
             (\(unQ, node) ->
-                nestedToNodes nodeMap thisMod (Name.mkLocal kidsNS unQ) node
+                nestedToNodes nodeMap thisMod (Name.mkLocal kidsNS unQ) node myParams
             )
             nodeNested
     name = Name.CapnpQ
@@ -76,13 +146,14 @@
             [ Flat.Node
                 { name
                 , nodeId
+                , typeParams = myParams
                 , union_ = Flat.Enum enumerants
                 }
             ]
         Stage1.NodeStruct struct ->
-            structToNodes nodeMap thisMod nodeId name kidsNS struct
+            structToNodes nodeMap thisMod nodeId name kidsNS struct myParams
         Stage1.NodeInterface iface ->
-            interfaceToNodes nodeMap thisMod nodeId name kidsNS iface
+            interfaceToNodes nodeMap thisMod nodeId name kidsNS iface myParams
         Stage1.NodeConstant value ->
             [ Flat.Node
                 { name = Name.CapnpQ
@@ -91,10 +162,11 @@
                     }
                 , nodeId
                 , union_ = Flat.Constant
-                    { value = fmap
+                    { value = applyBrandValue $ C.bothMap
                         (\Stage1.Node{nodeCommon=Stage1.NodeCommon{nodeId}} -> nodeMap M.! nodeId)
                         value
                     }
+                , typeParams = myParams
                 }
             ]
         Stage1.NodeOther ->
@@ -102,41 +174,39 @@
                 { name
                 , nodeId
                 , union_ = Flat.Other
+                , typeParams = myParams
                 }
             ]
 
-interfaceToNodes :: NodeMap -> Word64 -> Word64 -> Name.CapnpQ -> Name.NS -> Stage1.Interface -> [Flat.Node]
-interfaceToNodes nodeMap thisMod nodeId name kidsNS iface@Stage1.Interface{ methods, supers } =
+interfaceToNodes :: NodeMap -> Word64 -> Word64 -> Name.CapnpQ -> Name.NS -> Stage1.Interface -> [C.TypeParamRef Flat.Node] -> [Flat.Node]
+interfaceToNodes nodeMap thisMod nodeId name kidsNS Stage1.Interface{ methods, supers } typeParams =
+    let translateSuper =
+            applyBrandInterfaceType
+            . C.bothMap (\Stage1.Node{nodeCommon=Stage1.NodeCommon{nodeId}} -> nodeMap M.! nodeId)
+        prType = applyBrandCompositeType . C.bothMap
+            (\Stage1.Node{nodeCommon=Stage1.NodeCommon{nodeId}} ->
+                nodeMap M.! nodeId
+            )
+    in
     Flat.Node
         { name
         , nodeId
         , union_ = Flat.Interface
             { methods =
-                [ let Flat.Node{name=paramName} = nodeMap M.! paramId
-                      Flat.Node{name=resultName} = nodeMap M.! resultId
-                  in Flat.Method
-                        { name
-                        , paramType = paramName
-                        , resultType = resultName
-                        }
-                | Stage1.Method
+                [ Flat.Method
                     { name
-                    , paramType=Stage1.Node{nodeCommon=Stage1.NodeCommon{nodeId=paramId}}
-                    , resultType=Stage1.Node{nodeCommon=Stage1.NodeCommon{nodeId=resultId}}
+                    , paramType = prType paramType
+                    , resultType = prType resultType
                     }
-                <- methods
-                ]
-            , supers =
-                [ nodeMap M.! nodeId | Stage1.Node{nodeCommon=Stage1.NodeCommon{nodeId}} <- supers ]
-            , ancestors =
-                [ nodeMap M.! supId
-                | supId <- S.toList (collectAncestors iface)
+                | Stage1.Method { name, paramType, resultType } <- methods
                 ]
+            , supers = map translateSuper supers
             }
+        , typeParams
         }
-    : concatMap (methodToNodes nodeMap thisMod kidsNS) methods
+    : concatMap (\method -> methodToNodes nodeMap thisMod kidsNS method typeParams) methods
 
-structToNodes :: NodeMap -> Word64 -> Word64 -> Name.CapnpQ -> Name.NS -> Stage1.Struct -> [Flat.Node]
+structToNodes :: NodeMap -> Word64 -> Word64 -> Name.CapnpQ -> Name.NS -> Stage1.Struct -> [C.TypeParamRef Flat.Node] -> [Flat.Node]
 structToNodes
     nodeMap
     thisMod
@@ -149,12 +219,13 @@
             , dataWordCount
             , pointerCount
             , tagOffset
-            } =
+            }
+    typeParams =
         let
             mkField fieldUnQ locType =
                 Flat.Field
                     { fieldName = Name.mkSub name fieldUnQ
-                    , fieldLocType = fmap
+                    , fieldLocType = applyBrandFieldLocType $ C.bothMap
                         (\Stage1.Node{nodeCommon=Stage1.NodeCommon{nodeId}} -> nodeMap M.! nodeId)
                         locType
                     }
@@ -170,7 +241,7 @@
                 | Stage1.Field{name=fieldUnQ, locType, tag=Nothing} <- fields
                 ]
             fieldNodes =
-                concatMap (fieldToNodes nodeMap thisMod kidsNS) fields
+                concatMap (fieldToNodes nodeMap thisMod kidsNS typeParams) fields
 
             commonNode =
                 Flat.Node
@@ -190,46 +261,35 @@
                         , dataWordCount
                         , pointerCount
                         }
+                    , typeParams
                     }
         in
         commonNode : fieldNodes
 
-fieldToNodes :: NodeMap -> Word64 -> Name.NS -> Stage1.Field -> [Flat.Node]
-fieldToNodes nodeMap thisMod ns Stage1.Field{name, locType} = case locType of
+fieldToNodes :: NodeMap -> Word64 -> Name.NS -> [C.TypeParamRef Flat.Node] -> Stage1.Field -> [Flat.Node]
+fieldToNodes nodeMap thisMod ns typeParams Stage1.Field{name, locType} = case locType of
     C.HereField
         (C.StructType
             struct@Stage1.Node
                 { nodeUnion = Stage1.NodeStruct Stage1.Struct{isGroup=True}
                 }
-        ) -> nestedToNodes nodeMap thisMod (Name.mkLocal ns name) struct
+            _ -- Type parameters will be the same as the enclosing scope.
+        ) -> nestedToNodes nodeMap thisMod (Name.mkLocal ns name) struct typeParams
     _ ->
         []
 
-methodToNodes :: NodeMap -> Word64 -> Name.NS -> Stage1.Method -> [Flat.Node]
-methodToNodes nodeMap thisMod ns Stage1.Method{ name, paramType, resultType } =
+methodToNodes :: NodeMap -> Word64 -> Name.NS -> Stage1.Method -> [C.TypeParamRef Flat.Node] -> [Flat.Node]
+methodToNodes nodeMap thisMod ns Stage1.Method{ name, paramType, resultType } typeParams =
     -- If the parameter and result types are anonymous, we need to generate
     -- structs for them.
     let maybeAnon ty suffix =
             case ty of
-                Stage1.Node{nodeCommon=Stage1.NodeCommon{nodeParent=Nothing}} ->
+                C.StructType node@Stage1.Node{nodeCommon=Stage1.NodeCommon{nodeParent=Nothing}} _ ->
                     let localName = Name.mkLocal ns name
                         kidsNS = Name.localQToNS localName
                     in
-                    nestedToNodes nodeMap thisMod (Name.mkLocal kidsNS suffix) ty
+                    nestedToNodes nodeMap thisMod (Name.mkLocal kidsNS suffix) node typeParams
                 _ ->
                     []
     in
     maybeAnon paramType "params" ++ maybeAnon resultType "results"
-
-
--- | Collect the ids of of the ancestors of an interface, not including itself.
-collectAncestors :: Stage1.Interface -> S.Set Word64
-collectAncestors Stage1.Interface{supers} =
-    -- This could be made faster, in that if there are shared ancestors
-    -- (diamonds) we'll traverse them twice, but this is more
-    -- straightforward, and with typical interface hierarchies it shouldn't
-    -- be a huge problem.
-    S.unions $
-        S.fromList [ nodeId | Stage1.Node{nodeCommon=Stage1.NodeCommon{nodeId}} <- supers ]
-        :
-        [ collectAncestors iface | Stage1.Node{nodeUnion=Stage1.NodeInterface iface} <- supers ]
diff --git a/examples/gen/lib/Capnp/Gen/Calculator.hs b/examples/gen/lib/Capnp/Gen/Calculator.hs
--- a/examples/gen/lib/Capnp/Gen/Calculator.hs
+++ b/examples/gen/lib/Capnp/Gen/Calculator.hs
@@ -31,8 +31,6 @@
     toPtr msg (Calculator'newtype_ (Std_.Just cap)) = (Std_.pure (Std_.Just (Untyped.PtrCap cap)))
 newtype Calculator'evaluate'params msg
     = Calculator'evaluate'params'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Calculator'evaluate'params) where
-    tMsg f (Calculator'evaluate'params'newtype_ s) = (Calculator'evaluate'params'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Calculator'evaluate'params msg)) where
     fromStruct struct = (Std_.pure (Calculator'evaluate'params'newtype_ struct))
 instance (Classes.ToStruct msg (Calculator'evaluate'params msg)) where
@@ -61,12 +59,14 @@
 instance (Basics.MutListElem s (Calculator'evaluate'params (Message.MutMsg s))) where
     setIndex (Calculator'evaluate'params'newtype_ elt) i (Calculator'evaluate'params'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Calculator'evaluate'params'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_Calculator'evaluate'params'expression :: ((Untyped.ReadCtx m msg)) => (Calculator'evaluate'params msg) -> (m (Expression msg))
+get_Calculator'evaluate'params'expression :: ((Untyped.ReadCtx m msg)
+                                             ,(Classes.FromPtr msg (Expression msg))) => (Calculator'evaluate'params msg) -> (m (Expression msg))
 get_Calculator'evaluate'params'expression (Calculator'evaluate'params'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Calculator'evaluate'params'expression :: ((Untyped.RWCtx m s)) => (Calculator'evaluate'params (Message.MutMsg s)) -> (Expression (Message.MutMsg s)) -> (m ())
+set_Calculator'evaluate'params'expression :: ((Untyped.RWCtx m s)
+                                             ,(Classes.ToPtr s (Expression (Message.MutMsg s)))) => (Calculator'evaluate'params (Message.MutMsg s)) -> (Expression (Message.MutMsg s)) -> (m ())
 set_Calculator'evaluate'params'expression (Calculator'evaluate'params'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -81,8 +81,6 @@
     )
 newtype Calculator'evaluate'results msg
     = Calculator'evaluate'results'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Calculator'evaluate'results) where
-    tMsg f (Calculator'evaluate'results'newtype_ s) = (Calculator'evaluate'results'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Calculator'evaluate'results msg)) where
     fromStruct struct = (Std_.pure (Calculator'evaluate'results'newtype_ struct))
 instance (Classes.ToStruct msg (Calculator'evaluate'results msg)) where
@@ -111,12 +109,14 @@
 instance (Basics.MutListElem s (Calculator'evaluate'results (Message.MutMsg s))) where
     setIndex (Calculator'evaluate'results'newtype_ elt) i (Calculator'evaluate'results'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Calculator'evaluate'results'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_Calculator'evaluate'results'value :: ((Untyped.ReadCtx m msg)) => (Calculator'evaluate'results msg) -> (m (Value msg))
+get_Calculator'evaluate'results'value :: ((Untyped.ReadCtx m msg)
+                                         ,(Classes.FromPtr msg (Value msg))) => (Calculator'evaluate'results msg) -> (m (Value msg))
 get_Calculator'evaluate'results'value (Calculator'evaluate'results'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Calculator'evaluate'results'value :: ((Untyped.RWCtx m s)) => (Calculator'evaluate'results (Message.MutMsg s)) -> (Value (Message.MutMsg s)) -> (m ())
+set_Calculator'evaluate'results'value :: ((Untyped.RWCtx m s)
+                                         ,(Classes.ToPtr s (Value (Message.MutMsg s)))) => (Calculator'evaluate'results (Message.MutMsg s)) -> (Value (Message.MutMsg s)) -> (m ())
 set_Calculator'evaluate'results'value (Calculator'evaluate'results'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -125,8 +125,6 @@
 has_Calculator'evaluate'results'value (Calculator'evaluate'results'newtype_ struct) = (Std_.isJust <$> (Untyped.getPtr 0 struct))
 newtype Calculator'defFunction'params msg
     = Calculator'defFunction'params'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Calculator'defFunction'params) where
-    tMsg f (Calculator'defFunction'params'newtype_ s) = (Calculator'defFunction'params'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Calculator'defFunction'params msg)) where
     fromStruct struct = (Std_.pure (Calculator'defFunction'params'newtype_ struct))
 instance (Classes.ToStruct msg (Calculator'defFunction'params msg)) where
@@ -159,12 +157,14 @@
 get_Calculator'defFunction'params'paramCount (Calculator'defFunction'params'newtype_ struct) = (GenHelpers.getWordField struct 0 0 0)
 set_Calculator'defFunction'params'paramCount :: ((Untyped.RWCtx m s)) => (Calculator'defFunction'params (Message.MutMsg s)) -> Std_.Int32 -> (m ())
 set_Calculator'defFunction'params'paramCount (Calculator'defFunction'params'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word32) 0 0 0)
-get_Calculator'defFunction'params'body :: ((Untyped.ReadCtx m msg)) => (Calculator'defFunction'params msg) -> (m (Expression msg))
+get_Calculator'defFunction'params'body :: ((Untyped.ReadCtx m msg)
+                                          ,(Classes.FromPtr msg (Expression msg))) => (Calculator'defFunction'params msg) -> (m (Expression msg))
 get_Calculator'defFunction'params'body (Calculator'defFunction'params'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Calculator'defFunction'params'body :: ((Untyped.RWCtx m s)) => (Calculator'defFunction'params (Message.MutMsg s)) -> (Expression (Message.MutMsg s)) -> (m ())
+set_Calculator'defFunction'params'body :: ((Untyped.RWCtx m s)
+                                          ,(Classes.ToPtr s (Expression (Message.MutMsg s)))) => (Calculator'defFunction'params (Message.MutMsg s)) -> (Expression (Message.MutMsg s)) -> (m ())
 set_Calculator'defFunction'params'body (Calculator'defFunction'params'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -179,8 +179,6 @@
     )
 newtype Calculator'defFunction'results msg
     = Calculator'defFunction'results'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Calculator'defFunction'results) where
-    tMsg f (Calculator'defFunction'results'newtype_ s) = (Calculator'defFunction'results'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Calculator'defFunction'results msg)) where
     fromStruct struct = (Std_.pure (Calculator'defFunction'results'newtype_ struct))
 instance (Classes.ToStruct msg (Calculator'defFunction'results msg)) where
@@ -209,12 +207,14 @@
 instance (Basics.MutListElem s (Calculator'defFunction'results (Message.MutMsg s))) where
     setIndex (Calculator'defFunction'results'newtype_ elt) i (Calculator'defFunction'results'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Calculator'defFunction'results'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_Calculator'defFunction'results'func :: ((Untyped.ReadCtx m msg)) => (Calculator'defFunction'results msg) -> (m (Function msg))
+get_Calculator'defFunction'results'func :: ((Untyped.ReadCtx m msg)
+                                           ,(Classes.FromPtr msg (Function msg))) => (Calculator'defFunction'results msg) -> (m (Function msg))
 get_Calculator'defFunction'results'func (Calculator'defFunction'results'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Calculator'defFunction'results'func :: ((Untyped.RWCtx m s)) => (Calculator'defFunction'results (Message.MutMsg s)) -> (Function (Message.MutMsg s)) -> (m ())
+set_Calculator'defFunction'results'func :: ((Untyped.RWCtx m s)
+                                           ,(Classes.ToPtr s (Function (Message.MutMsg s)))) => (Calculator'defFunction'results (Message.MutMsg s)) -> (Function (Message.MutMsg s)) -> (m ())
 set_Calculator'defFunction'results'func (Calculator'defFunction'results'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -223,8 +223,6 @@
 has_Calculator'defFunction'results'func (Calculator'defFunction'results'newtype_ struct) = (Std_.isJust <$> (Untyped.getPtr 0 struct))
 newtype Calculator'getOperator'params msg
     = Calculator'getOperator'params'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Calculator'getOperator'params) where
-    tMsg f (Calculator'getOperator'params'newtype_ s) = (Calculator'getOperator'params'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Calculator'getOperator'params msg)) where
     fromStruct struct = (Std_.pure (Calculator'getOperator'params'newtype_ struct))
 instance (Classes.ToStruct msg (Calculator'getOperator'params msg)) where
@@ -259,8 +257,6 @@
 set_Calculator'getOperator'params'op (Calculator'getOperator'params'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 0 0 0)
 newtype Calculator'getOperator'results msg
     = Calculator'getOperator'results'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Calculator'getOperator'results) where
-    tMsg f (Calculator'getOperator'results'newtype_ s) = (Calculator'getOperator'results'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Calculator'getOperator'results msg)) where
     fromStruct struct = (Std_.pure (Calculator'getOperator'results'newtype_ struct))
 instance (Classes.ToStruct msg (Calculator'getOperator'results msg)) where
@@ -289,12 +285,14 @@
 instance (Basics.MutListElem s (Calculator'getOperator'results (Message.MutMsg s))) where
     setIndex (Calculator'getOperator'results'newtype_ elt) i (Calculator'getOperator'results'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Calculator'getOperator'results'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_Calculator'getOperator'results'func :: ((Untyped.ReadCtx m msg)) => (Calculator'getOperator'results msg) -> (m (Function msg))
+get_Calculator'getOperator'results'func :: ((Untyped.ReadCtx m msg)
+                                           ,(Classes.FromPtr msg (Function msg))) => (Calculator'getOperator'results msg) -> (m (Function msg))
 get_Calculator'getOperator'results'func (Calculator'getOperator'results'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Calculator'getOperator'results'func :: ((Untyped.RWCtx m s)) => (Calculator'getOperator'results (Message.MutMsg s)) -> (Function (Message.MutMsg s)) -> (m ())
+set_Calculator'getOperator'results'func :: ((Untyped.RWCtx m s)
+                                           ,(Classes.ToPtr s (Function (Message.MutMsg s)))) => (Calculator'getOperator'results (Message.MutMsg s)) -> (Function (Message.MutMsg s)) -> (m ())
 set_Calculator'getOperator'results'func (Calculator'getOperator'results'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -303,8 +301,6 @@
 has_Calculator'getOperator'results'func (Calculator'getOperator'results'newtype_ struct) = (Std_.isJust <$> (Untyped.getPtr 0 struct))
 newtype Expression msg
     = Expression'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Expression) where
-    tMsg f (Expression'newtype_ s) = (Expression'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Expression msg)) where
     fromStruct struct = (Std_.pure (Expression'newtype_ struct))
 instance (Classes.ToStruct msg (Expression msg)) where
@@ -357,14 +353,16 @@
             _ ->
                 (Std_.pure (Expression'unknown' (Std_.fromIntegral tag)))
         )
-get_Expression' :: ((Untyped.ReadCtx m msg)) => (Expression msg) -> (m (Expression' msg))
+get_Expression' :: ((Untyped.ReadCtx m msg)
+                   ,(Classes.FromStruct msg (Expression' msg))) => (Expression msg) -> (m (Expression' msg))
 get_Expression' (Expression'newtype_ struct) = (Classes.fromStruct struct)
 set_Expression'literal :: ((Untyped.RWCtx m s)) => (Expression (Message.MutMsg s)) -> Std_.Double -> (m ())
 set_Expression'literal (Expression'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (0 :: Std_.Word16) 1 0 0)
     (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word64) 0 0 0)
     )
-set_Expression'previousResult :: ((Untyped.RWCtx m s)) => (Expression (Message.MutMsg s)) -> (Value (Message.MutMsg s)) -> (m ())
+set_Expression'previousResult :: ((Untyped.RWCtx m s)
+                                 ,(Classes.ToPtr s (Value (Message.MutMsg s)))) => (Expression (Message.MutMsg s)) -> (Value (Message.MutMsg s)) -> (m ())
 set_Expression'previousResult (Expression'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (1 :: Std_.Word16) 1 0 0)
     (do
@@ -377,7 +375,8 @@
     (GenHelpers.setWordField struct (2 :: Std_.Word16) 1 0 0)
     (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word32) 0 0 0)
     )
-set_Expression'call :: ((Untyped.RWCtx m s)) => (Expression (Message.MutMsg s)) -> (m (Expression'call (Message.MutMsg s)))
+set_Expression'call :: ((Untyped.RWCtx m s)
+                       ,(Classes.FromStruct (Message.MutMsg s) (Expression'call (Message.MutMsg s)))) => (Expression (Message.MutMsg s)) -> (m (Expression'call (Message.MutMsg s)))
 set_Expression'call (Expression'newtype_ struct) = (do
     (GenHelpers.setWordField struct (3 :: Std_.Word16) 1 0 0)
     (Classes.fromStruct struct)
@@ -386,8 +385,6 @@
 set_Expression'unknown' (Expression'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 1 0 0)
 newtype Expression'call msg
     = Expression'call'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Expression'call) where
-    tMsg f (Expression'call'newtype_ s) = (Expression'call'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Expression'call msg)) where
     fromStruct struct = (Std_.pure (Expression'call'newtype_ struct))
 instance (Classes.ToStruct msg (Expression'call msg)) where
@@ -397,24 +394,28 @@
     message (Expression'call'newtype_ struct) = (Untyped.message struct)
 instance (Untyped.MessageDefault (Expression'call msg)) where
     messageDefault msg = (Expression'call'newtype_ (Untyped.messageDefault msg))
-get_Expression'call'function :: ((Untyped.ReadCtx m msg)) => (Expression'call msg) -> (m (Function msg))
+get_Expression'call'function :: ((Untyped.ReadCtx m msg)
+                                ,(Classes.FromPtr msg (Function msg))) => (Expression'call msg) -> (m (Function msg))
 get_Expression'call'function (Expression'call'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Expression'call'function :: ((Untyped.RWCtx m s)) => (Expression'call (Message.MutMsg s)) -> (Function (Message.MutMsg s)) -> (m ())
+set_Expression'call'function :: ((Untyped.RWCtx m s)
+                                ,(Classes.ToPtr s (Function (Message.MutMsg s)))) => (Expression'call (Message.MutMsg s)) -> (Function (Message.MutMsg s)) -> (m ())
 set_Expression'call'function (Expression'call'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
     )
 has_Expression'call'function :: ((Untyped.ReadCtx m msg)) => (Expression'call msg) -> (m Std_.Bool)
 has_Expression'call'function (Expression'call'newtype_ struct) = (Std_.isJust <$> (Untyped.getPtr 0 struct))
-get_Expression'call'params :: ((Untyped.ReadCtx m msg)) => (Expression'call msg) -> (m (Basics.List msg (Expression msg)))
+get_Expression'call'params :: ((Untyped.ReadCtx m msg)
+                              ,(Classes.FromPtr msg (Basics.List msg (Expression msg)))) => (Expression'call msg) -> (m (Basics.List msg (Expression msg)))
 get_Expression'call'params (Expression'call'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 1 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Expression'call'params :: ((Untyped.RWCtx m s)) => (Expression'call (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Expression (Message.MutMsg s))) -> (m ())
+set_Expression'call'params :: ((Untyped.RWCtx m s)
+                              ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Expression (Message.MutMsg s))))) => (Expression'call (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Expression (Message.MutMsg s))) -> (m ())
 set_Expression'call'params (Expression'call'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 1 struct)
@@ -436,8 +437,6 @@
     toPtr msg (Value'newtype_ (Std_.Just cap)) = (Std_.pure (Std_.Just (Untyped.PtrCap cap)))
 newtype Value'read'params msg
     = Value'read'params'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Value'read'params) where
-    tMsg f (Value'read'params'newtype_ s) = (Value'read'params'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Value'read'params msg)) where
     fromStruct struct = (Std_.pure (Value'read'params'newtype_ struct))
 instance (Classes.ToStruct msg (Value'read'params msg)) where
@@ -468,8 +467,6 @@
     newList msg len = (Value'read'params'List_ <$> (Untyped.allocCompositeList msg 0 0 len))
 newtype Value'read'results msg
     = Value'read'results'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Value'read'results) where
-    tMsg f (Value'read'results'newtype_ s) = (Value'read'results'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Value'read'results msg)) where
     fromStruct struct = (Std_.pure (Value'read'results'newtype_ struct))
 instance (Classes.ToStruct msg (Value'read'results msg)) where
@@ -511,8 +508,6 @@
     toPtr msg (Function'newtype_ (Std_.Just cap)) = (Std_.pure (Std_.Just (Untyped.PtrCap cap)))
 newtype Function'call'params msg
     = Function'call'params'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Function'call'params) where
-    tMsg f (Function'call'params'newtype_ s) = (Function'call'params'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Function'call'params msg)) where
     fromStruct struct = (Std_.pure (Function'call'params'newtype_ struct))
 instance (Classes.ToStruct msg (Function'call'params msg)) where
@@ -541,12 +536,14 @@
 instance (Basics.MutListElem s (Function'call'params (Message.MutMsg s))) where
     setIndex (Function'call'params'newtype_ elt) i (Function'call'params'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Function'call'params'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_Function'call'params'params :: ((Untyped.ReadCtx m msg)) => (Function'call'params msg) -> (m (Basics.List msg Std_.Double))
+get_Function'call'params'params :: ((Untyped.ReadCtx m msg)
+                                   ,(Classes.FromPtr msg (Basics.List msg Std_.Double))) => (Function'call'params msg) -> (m (Basics.List msg Std_.Double))
 get_Function'call'params'params (Function'call'params'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Function'call'params'params :: ((Untyped.RWCtx m s)) => (Function'call'params (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) Std_.Double) -> (m ())
+set_Function'call'params'params :: ((Untyped.RWCtx m s)
+                                   ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) Std_.Double))) => (Function'call'params (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) Std_.Double) -> (m ())
 set_Function'call'params'params (Function'call'params'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -561,8 +558,6 @@
     )
 newtype Function'call'results msg
     = Function'call'results'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Function'call'results) where
-    tMsg f (Function'call'results'newtype_ s) = (Function'call'results'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Function'call'results msg)) where
     fromStruct struct = (Std_.pure (Function'call'results'newtype_ struct))
 instance (Classes.ToStruct msg (Function'call'results msg)) where
diff --git a/examples/gen/lib/Capnp/Gen/Calculator/Pure.hs b/examples/gen/lib/Capnp/Gen/Calculator/Pure.hs
--- a/examples/gen/lib/Capnp/Gen/Calculator/Pure.hs
+++ b/examples/gen/lib/Capnp/Gen/Calculator/Pure.hs
@@ -2,9 +2,11 @@
 {-# LANGUAGE DuplicateRecordFields #-}
 {-# LANGUAGE FlexibleContexts #-}
 {-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE FunctionalDependencies #-}
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE UndecidableInstances #-}
 {-# OPTIONS_GHC -Wno-unused-imports #-}
 {-# OPTIONS_GHC -Wno-dodgy-exports #-}
 {-# OPTIONS_GHC -Wno-unused-matches #-}
@@ -68,8 +70,8 @@
     calculator'defFunction _ = Server.methodUnimplemented
     calculator'getOperator :: cap -> (Server.MethodHandler m Calculator'getOperator'params Calculator'getOperator'results)
     calculator'getOperator _ = Server.methodUnimplemented
-export_Calculator :: ((Calculator'server_ Std_.IO a)
-                     ,(STM.MonadSTM m)) => Supervisors.Supervisor -> a -> (m Calculator)
+export_Calculator :: ((STM.MonadSTM m)
+                     ,(Calculator'server_ Std_.IO cap)) => Supervisors.Supervisor -> cap -> (m (Calculator))
 export_Calculator sup_ server_ = (STM.liftSTM (Calculator <$> (Rpc.export sup_ Server.ServerOps{handleCast = (Server.unwrap server_)
                                                                                                ,handleStop = (Server.shutdown server_)
                                                                                                ,handleCall = (\interfaceId_ methodId_ -> case interfaceId_ of
@@ -85,24 +87,24 @@
                                                                                                                Server.methodUnimplemented
                                                                                                    _ ->
                                                                                                        Server.methodUnimplemented)})))
-instance (Rpc.IsClient Calculator) where
+instance (Rpc.IsClient (Calculator)) where
     fromClient  = Calculator
     toClient (Calculator client) = client
-instance (Classes.FromPtr msg Calculator) where
+instance (Classes.FromPtr msg (Calculator)) where
     fromPtr  = RpcHelpers.isClientFromPtr
-instance (Classes.ToPtr s Calculator) where
+instance (Classes.ToPtr s (Calculator)) where
     toPtr  = RpcHelpers.isClientToPtr
-instance (Classes.Decerialize Calculator) where
-    type Cerial msg Calculator = (Capnp.Gen.ById.X85150b117366d14b.Calculator msg)
+instance (Classes.Decerialize (Calculator)) where
+    type Cerial msg (Calculator) = (Capnp.Gen.ById.X85150b117366d14b.Calculator msg)
     decerialize (Capnp.Gen.ById.X85150b117366d14b.Calculator'newtype_ maybeCap) = case maybeCap of
         (Std_.Nothing) ->
             (Std_.pure (Calculator Message.nullClient))
         (Std_.Just cap) ->
             (Calculator <$> (Untyped.getClient cap))
-instance (Classes.Cerialize Calculator) where
+instance (Classes.Cerialize s (Calculator)) where
     cerialize msg (Calculator client) = (Capnp.Gen.ById.X85150b117366d14b.Calculator'newtype_ <$> (Std_.Just <$> (Untyped.appendCap msg client)))
-instance (Server.Server Std_.IO Calculator)
-instance (Calculator'server_ Std_.IO Calculator) where
+instance (Server.Server Std_.IO (Calculator))
+instance (Calculator'server_ Std_.IO (Calculator)) where
     calculator'evaluate (Calculator client) = (Rpc.clientMethodHandler 10923537602090224694 0 client)
     calculator'defFunction (Calculator client) = (Rpc.clientMethodHandler 10923537602090224694 1 client)
     calculator'getOperator (Calculator client) = (Rpc.clientMethodHandler 10923537602090224694 2 client)
@@ -112,34 +114,34 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Calculator'evaluate'params) where
+instance (Default.Default (Calculator'evaluate'params)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Calculator'evaluate'params) where
+instance (Classes.FromStruct Message.ConstMsg (Calculator'evaluate'params)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Calculator'evaluate'params) where
-    type Cerial msg Calculator'evaluate'params = (Capnp.Gen.ById.X85150b117366d14b.Calculator'evaluate'params msg)
+instance (Classes.Decerialize (Calculator'evaluate'params)) where
+    type Cerial msg (Calculator'evaluate'params) = (Capnp.Gen.ById.X85150b117366d14b.Calculator'evaluate'params msg)
     decerialize raw = (Calculator'evaluate'params <$> ((Capnp.Gen.ById.X85150b117366d14b.get_Calculator'evaluate'params'expression raw) >>= Classes.decerialize))
-instance (Classes.Marshal Calculator'evaluate'params) where
+instance (Classes.Marshal s (Calculator'evaluate'params)) where
     marshalInto raw_ value_ = case value_ of
         Calculator'evaluate'params{..} ->
             (do
                 ((Classes.cerialize (Untyped.message raw_) expression) >>= (Capnp.Gen.ById.X85150b117366d14b.set_Calculator'evaluate'params'expression raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Calculator'evaluate'params)
-instance (Classes.Cerialize (V.Vector Calculator'evaluate'params)) where
+instance (Classes.Cerialize s (Calculator'evaluate'params))
+instance (Classes.Cerialize s (V.Vector (Calculator'evaluate'params))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Calculator'evaluate'params))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Calculator'evaluate'params)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Calculator'evaluate'params)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Calculator'evaluate'params))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Calculator'evaluate'params))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Calculator'evaluate'params)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Calculator'evaluate'params)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Calculator'evaluate'params))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Calculator'evaluate'params))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Calculator'evaluate'params)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Calculator'evaluate'params)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Calculator'evaluate'params))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Calculator'evaluate'results 
     = Calculator'evaluate'results 
@@ -147,34 +149,34 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Calculator'evaluate'results) where
+instance (Default.Default (Calculator'evaluate'results)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Calculator'evaluate'results) where
+instance (Classes.FromStruct Message.ConstMsg (Calculator'evaluate'results)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Calculator'evaluate'results) where
-    type Cerial msg Calculator'evaluate'results = (Capnp.Gen.ById.X85150b117366d14b.Calculator'evaluate'results msg)
+instance (Classes.Decerialize (Calculator'evaluate'results)) where
+    type Cerial msg (Calculator'evaluate'results) = (Capnp.Gen.ById.X85150b117366d14b.Calculator'evaluate'results msg)
     decerialize raw = (Calculator'evaluate'results <$> ((Capnp.Gen.ById.X85150b117366d14b.get_Calculator'evaluate'results'value raw) >>= Classes.decerialize))
-instance (Classes.Marshal Calculator'evaluate'results) where
+instance (Classes.Marshal s (Calculator'evaluate'results)) where
     marshalInto raw_ value_ = case value_ of
         Calculator'evaluate'results{..} ->
             (do
                 ((Classes.cerialize (Untyped.message raw_) value) >>= (Capnp.Gen.ById.X85150b117366d14b.set_Calculator'evaluate'results'value raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Calculator'evaluate'results)
-instance (Classes.Cerialize (V.Vector Calculator'evaluate'results)) where
+instance (Classes.Cerialize s (Calculator'evaluate'results))
+instance (Classes.Cerialize s (V.Vector (Calculator'evaluate'results))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Calculator'evaluate'results))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Calculator'evaluate'results)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Calculator'evaluate'results)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Calculator'evaluate'results))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Calculator'evaluate'results))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Calculator'evaluate'results)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Calculator'evaluate'results)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Calculator'evaluate'results))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Calculator'evaluate'results))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Calculator'evaluate'results)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Calculator'evaluate'results)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Calculator'evaluate'results))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Calculator'defFunction'params 
     = Calculator'defFunction'params 
@@ -183,15 +185,15 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Calculator'defFunction'params) where
+instance (Default.Default (Calculator'defFunction'params)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Calculator'defFunction'params) where
+instance (Classes.FromStruct Message.ConstMsg (Calculator'defFunction'params)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Calculator'defFunction'params) where
-    type Cerial msg Calculator'defFunction'params = (Capnp.Gen.ById.X85150b117366d14b.Calculator'defFunction'params msg)
+instance (Classes.Decerialize (Calculator'defFunction'params)) where
+    type Cerial msg (Calculator'defFunction'params) = (Capnp.Gen.ById.X85150b117366d14b.Calculator'defFunction'params msg)
     decerialize raw = (Calculator'defFunction'params <$> (Capnp.Gen.ById.X85150b117366d14b.get_Calculator'defFunction'params'paramCount raw)
                                                      <*> ((Capnp.Gen.ById.X85150b117366d14b.get_Calculator'defFunction'params'body raw) >>= Classes.decerialize))
-instance (Classes.Marshal Calculator'defFunction'params) where
+instance (Classes.Marshal s (Calculator'defFunction'params)) where
     marshalInto raw_ value_ = case value_ of
         Calculator'defFunction'params{..} ->
             (do
@@ -199,20 +201,20 @@
                 ((Classes.cerialize (Untyped.message raw_) body) >>= (Capnp.Gen.ById.X85150b117366d14b.set_Calculator'defFunction'params'body raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Calculator'defFunction'params)
-instance (Classes.Cerialize (V.Vector Calculator'defFunction'params)) where
+instance (Classes.Cerialize s (Calculator'defFunction'params))
+instance (Classes.Cerialize s (V.Vector (Calculator'defFunction'params))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Calculator'defFunction'params))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Calculator'defFunction'params)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Calculator'defFunction'params)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Calculator'defFunction'params))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Calculator'defFunction'params))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Calculator'defFunction'params)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Calculator'defFunction'params)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Calculator'defFunction'params))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Calculator'defFunction'params))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Calculator'defFunction'params)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Calculator'defFunction'params)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Calculator'defFunction'params))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Calculator'defFunction'results 
     = Calculator'defFunction'results 
@@ -220,34 +222,34 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Calculator'defFunction'results) where
+instance (Default.Default (Calculator'defFunction'results)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Calculator'defFunction'results) where
+instance (Classes.FromStruct Message.ConstMsg (Calculator'defFunction'results)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Calculator'defFunction'results) where
-    type Cerial msg Calculator'defFunction'results = (Capnp.Gen.ById.X85150b117366d14b.Calculator'defFunction'results msg)
+instance (Classes.Decerialize (Calculator'defFunction'results)) where
+    type Cerial msg (Calculator'defFunction'results) = (Capnp.Gen.ById.X85150b117366d14b.Calculator'defFunction'results msg)
     decerialize raw = (Calculator'defFunction'results <$> ((Capnp.Gen.ById.X85150b117366d14b.get_Calculator'defFunction'results'func raw) >>= Classes.decerialize))
-instance (Classes.Marshal Calculator'defFunction'results) where
+instance (Classes.Marshal s (Calculator'defFunction'results)) where
     marshalInto raw_ value_ = case value_ of
         Calculator'defFunction'results{..} ->
             (do
                 ((Classes.cerialize (Untyped.message raw_) func) >>= (Capnp.Gen.ById.X85150b117366d14b.set_Calculator'defFunction'results'func raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Calculator'defFunction'results)
-instance (Classes.Cerialize (V.Vector Calculator'defFunction'results)) where
+instance (Classes.Cerialize s (Calculator'defFunction'results))
+instance (Classes.Cerialize s (V.Vector (Calculator'defFunction'results))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Calculator'defFunction'results))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Calculator'defFunction'results)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Calculator'defFunction'results)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Calculator'defFunction'results))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Calculator'defFunction'results))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Calculator'defFunction'results)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Calculator'defFunction'results)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Calculator'defFunction'results))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Calculator'defFunction'results))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Calculator'defFunction'results)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Calculator'defFunction'results)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Calculator'defFunction'results))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Calculator'getOperator'params 
     = Calculator'getOperator'params 
@@ -255,34 +257,34 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Calculator'getOperator'params) where
+instance (Default.Default (Calculator'getOperator'params)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Calculator'getOperator'params) where
+instance (Classes.FromStruct Message.ConstMsg (Calculator'getOperator'params)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Calculator'getOperator'params) where
-    type Cerial msg Calculator'getOperator'params = (Capnp.Gen.ById.X85150b117366d14b.Calculator'getOperator'params msg)
+instance (Classes.Decerialize (Calculator'getOperator'params)) where
+    type Cerial msg (Calculator'getOperator'params) = (Capnp.Gen.ById.X85150b117366d14b.Calculator'getOperator'params msg)
     decerialize raw = (Calculator'getOperator'params <$> (Capnp.Gen.ById.X85150b117366d14b.get_Calculator'getOperator'params'op raw))
-instance (Classes.Marshal Calculator'getOperator'params) where
+instance (Classes.Marshal s (Calculator'getOperator'params)) where
     marshalInto raw_ value_ = case value_ of
         Calculator'getOperator'params{..} ->
             (do
                 (Capnp.Gen.ById.X85150b117366d14b.set_Calculator'getOperator'params'op raw_ op)
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Calculator'getOperator'params)
-instance (Classes.Cerialize (V.Vector Calculator'getOperator'params)) where
+instance (Classes.Cerialize s (Calculator'getOperator'params))
+instance (Classes.Cerialize s (V.Vector (Calculator'getOperator'params))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Calculator'getOperator'params))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Calculator'getOperator'params)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Calculator'getOperator'params)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Calculator'getOperator'params))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Calculator'getOperator'params))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Calculator'getOperator'params)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Calculator'getOperator'params)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Calculator'getOperator'params))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Calculator'getOperator'params))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Calculator'getOperator'params)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Calculator'getOperator'params)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Calculator'getOperator'params))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Calculator'getOperator'results 
     = Calculator'getOperator'results 
@@ -290,34 +292,34 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Calculator'getOperator'results) where
+instance (Default.Default (Calculator'getOperator'results)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Calculator'getOperator'results) where
+instance (Classes.FromStruct Message.ConstMsg (Calculator'getOperator'results)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Calculator'getOperator'results) where
-    type Cerial msg Calculator'getOperator'results = (Capnp.Gen.ById.X85150b117366d14b.Calculator'getOperator'results msg)
+instance (Classes.Decerialize (Calculator'getOperator'results)) where
+    type Cerial msg (Calculator'getOperator'results) = (Capnp.Gen.ById.X85150b117366d14b.Calculator'getOperator'results msg)
     decerialize raw = (Calculator'getOperator'results <$> ((Capnp.Gen.ById.X85150b117366d14b.get_Calculator'getOperator'results'func raw) >>= Classes.decerialize))
-instance (Classes.Marshal Calculator'getOperator'results) where
+instance (Classes.Marshal s (Calculator'getOperator'results)) where
     marshalInto raw_ value_ = case value_ of
         Calculator'getOperator'results{..} ->
             (do
                 ((Classes.cerialize (Untyped.message raw_) func) >>= (Capnp.Gen.ById.X85150b117366d14b.set_Calculator'getOperator'results'func raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Calculator'getOperator'results)
-instance (Classes.Cerialize (V.Vector Calculator'getOperator'results)) where
+instance (Classes.Cerialize s (Calculator'getOperator'results))
+instance (Classes.Cerialize s (V.Vector (Calculator'getOperator'results))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Calculator'getOperator'results))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Calculator'getOperator'results)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Calculator'getOperator'results)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Calculator'getOperator'results))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Calculator'getOperator'results))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Calculator'getOperator'results)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Calculator'getOperator'results)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Calculator'getOperator'results))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Calculator'getOperator'results))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Calculator'getOperator'results)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Calculator'getOperator'results)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Calculator'getOperator'results))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Expression 
     = Expression'literal Std_.Double
@@ -328,12 +330,12 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Expression) where
+instance (Default.Default (Expression)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Expression) where
+instance (Classes.FromStruct Message.ConstMsg (Expression)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Expression) where
-    type Cerial msg Expression = (Capnp.Gen.ById.X85150b117366d14b.Expression msg)
+instance (Classes.Decerialize (Expression)) where
+    type Cerial msg (Expression) = (Capnp.Gen.ById.X85150b117366d14b.Expression msg)
     decerialize raw = (do
         raw <- (Capnp.Gen.ById.X85150b117366d14b.get_Expression' raw)
         case raw of
@@ -348,7 +350,7 @@
             (Capnp.Gen.ById.X85150b117366d14b.Expression'unknown' tag) ->
                 (Std_.pure (Expression'unknown' tag))
         )
-instance (Classes.Marshal Expression) where
+instance (Classes.Marshal s (Expression)) where
     marshalInto raw_ value_ = case value_ of
         (Expression'literal arg_) ->
             (Capnp.Gen.ById.X85150b117366d14b.set_Expression'literal raw_ arg_)
@@ -363,20 +365,20 @@
                 )
         (Expression'unknown' tag) ->
             (Capnp.Gen.ById.X85150b117366d14b.set_Expression'unknown' raw_ tag)
-instance (Classes.Cerialize Expression)
-instance (Classes.Cerialize (V.Vector Expression)) where
+instance (Classes.Cerialize s (Expression))
+instance (Classes.Cerialize s (V.Vector (Expression))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Expression))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Expression)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Expression)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Expression))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Expression))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Expression)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Expression)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Expression))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Expression))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Expression)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Expression)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Expression))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Expression'call 
     = Expression'call' 
@@ -385,15 +387,15 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Expression'call) where
+instance (Default.Default (Expression'call)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Expression'call) where
+instance (Classes.FromStruct Message.ConstMsg (Expression'call)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Expression'call) where
-    type Cerial msg Expression'call = (Capnp.Gen.ById.X85150b117366d14b.Expression'call msg)
+instance (Classes.Decerialize (Expression'call)) where
+    type Cerial msg (Expression'call) = (Capnp.Gen.ById.X85150b117366d14b.Expression'call msg)
     decerialize raw = (Expression'call' <$> ((Capnp.Gen.ById.X85150b117366d14b.get_Expression'call'function raw) >>= Classes.decerialize)
                                         <*> ((Capnp.Gen.ById.X85150b117366d14b.get_Expression'call'params raw) >>= Classes.decerialize))
-instance (Classes.Marshal Expression'call) where
+instance (Classes.Marshal s (Expression'call)) where
     marshalInto raw_ value_ = case value_ of
         Expression'call'{..} ->
             (do
@@ -411,8 +413,8 @@
     {-# MINIMAL value'read #-}
     value'read :: cap -> (Server.MethodHandler m Value'read'params Value'read'results)
     value'read _ = Server.methodUnimplemented
-export_Value :: ((Value'server_ Std_.IO a)
-                ,(STM.MonadSTM m)) => Supervisors.Supervisor -> a -> (m Value)
+export_Value :: ((STM.MonadSTM m)
+                ,(Value'server_ Std_.IO cap)) => Supervisors.Supervisor -> cap -> (m (Value))
 export_Value sup_ server_ = (STM.liftSTM (Value <$> (Rpc.export sup_ Server.ServerOps{handleCast = (Server.unwrap server_)
                                                                                      ,handleStop = (Server.shutdown server_)
                                                                                      ,handleCall = (\interfaceId_ methodId_ -> case interfaceId_ of
@@ -424,24 +426,24 @@
                                                                                                      Server.methodUnimplemented
                                                                                          _ ->
                                                                                              Server.methodUnimplemented)})))
-instance (Rpc.IsClient Value) where
+instance (Rpc.IsClient (Value)) where
     fromClient  = Value
     toClient (Value client) = client
-instance (Classes.FromPtr msg Value) where
+instance (Classes.FromPtr msg (Value)) where
     fromPtr  = RpcHelpers.isClientFromPtr
-instance (Classes.ToPtr s Value) where
+instance (Classes.ToPtr s (Value)) where
     toPtr  = RpcHelpers.isClientToPtr
-instance (Classes.Decerialize Value) where
-    type Cerial msg Value = (Capnp.Gen.ById.X85150b117366d14b.Value msg)
+instance (Classes.Decerialize (Value)) where
+    type Cerial msg (Value) = (Capnp.Gen.ById.X85150b117366d14b.Value msg)
     decerialize (Capnp.Gen.ById.X85150b117366d14b.Value'newtype_ maybeCap) = case maybeCap of
         (Std_.Nothing) ->
             (Std_.pure (Value Message.nullClient))
         (Std_.Just cap) ->
             (Value <$> (Untyped.getClient cap))
-instance (Classes.Cerialize Value) where
+instance (Classes.Cerialize s (Value)) where
     cerialize msg (Value client) = (Capnp.Gen.ById.X85150b117366d14b.Value'newtype_ <$> (Std_.Just <$> (Untyped.appendCap msg client)))
-instance (Server.Server Std_.IO Value)
-instance (Value'server_ Std_.IO Value) where
+instance (Server.Server Std_.IO (Value))
+instance (Value'server_ Std_.IO (Value)) where
     value'read (Value client) = (Rpc.clientMethodHandler 14116142932258867410 0 client)
 data Value'read'params 
     = Value'read'params 
@@ -449,33 +451,33 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Value'read'params) where
+instance (Default.Default (Value'read'params)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Value'read'params) where
+instance (Classes.FromStruct Message.ConstMsg (Value'read'params)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Value'read'params) where
-    type Cerial msg Value'read'params = (Capnp.Gen.ById.X85150b117366d14b.Value'read'params msg)
+instance (Classes.Decerialize (Value'read'params)) where
+    type Cerial msg (Value'read'params) = (Capnp.Gen.ById.X85150b117366d14b.Value'read'params msg)
     decerialize raw = (Std_.pure Value'read'params)
-instance (Classes.Marshal Value'read'params) where
+instance (Classes.Marshal s (Value'read'params)) where
     marshalInto raw_ value_ = case value_ of
         (Value'read'params) ->
             (do
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Value'read'params)
-instance (Classes.Cerialize (V.Vector Value'read'params)) where
+instance (Classes.Cerialize s (Value'read'params))
+instance (Classes.Cerialize s (V.Vector (Value'read'params))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Value'read'params))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Value'read'params)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Value'read'params)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Value'read'params))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Value'read'params))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Value'read'params)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Value'read'params)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Value'read'params))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Value'read'params))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Value'read'params)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Value'read'params)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Value'read'params))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Value'read'results 
     = Value'read'results 
@@ -483,34 +485,34 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Value'read'results) where
+instance (Default.Default (Value'read'results)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Value'read'results) where
+instance (Classes.FromStruct Message.ConstMsg (Value'read'results)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Value'read'results) where
-    type Cerial msg Value'read'results = (Capnp.Gen.ById.X85150b117366d14b.Value'read'results msg)
+instance (Classes.Decerialize (Value'read'results)) where
+    type Cerial msg (Value'read'results) = (Capnp.Gen.ById.X85150b117366d14b.Value'read'results msg)
     decerialize raw = (Value'read'results <$> (Capnp.Gen.ById.X85150b117366d14b.get_Value'read'results'value raw))
-instance (Classes.Marshal Value'read'results) where
+instance (Classes.Marshal s (Value'read'results)) where
     marshalInto raw_ value_ = case value_ of
         Value'read'results{..} ->
             (do
                 (Capnp.Gen.ById.X85150b117366d14b.set_Value'read'results'value raw_ value)
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Value'read'results)
-instance (Classes.Cerialize (V.Vector Value'read'results)) where
+instance (Classes.Cerialize s (Value'read'results))
+instance (Classes.Cerialize s (V.Vector (Value'read'results))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Value'read'results))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Value'read'results)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Value'read'results)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Value'read'results))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Value'read'results))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Value'read'results)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Value'read'results)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Value'read'results))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Value'read'results))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Value'read'results)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Value'read'results)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Value'read'results))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 newtype Function 
     = Function Message.Client
@@ -522,8 +524,8 @@
     {-# MINIMAL function'call #-}
     function'call :: cap -> (Server.MethodHandler m Function'call'params Function'call'results)
     function'call _ = Server.methodUnimplemented
-export_Function :: ((Function'server_ Std_.IO a)
-                   ,(STM.MonadSTM m)) => Supervisors.Supervisor -> a -> (m Function)
+export_Function :: ((STM.MonadSTM m)
+                   ,(Function'server_ Std_.IO cap)) => Supervisors.Supervisor -> cap -> (m (Function))
 export_Function sup_ server_ = (STM.liftSTM (Function <$> (Rpc.export sup_ Server.ServerOps{handleCast = (Server.unwrap server_)
                                                                                            ,handleStop = (Server.shutdown server_)
                                                                                            ,handleCall = (\interfaceId_ methodId_ -> case interfaceId_ of
@@ -535,24 +537,24 @@
                                                                                                            Server.methodUnimplemented
                                                                                                _ ->
                                                                                                    Server.methodUnimplemented)})))
-instance (Rpc.IsClient Function) where
+instance (Rpc.IsClient (Function)) where
     fromClient  = Function
     toClient (Function client) = client
-instance (Classes.FromPtr msg Function) where
+instance (Classes.FromPtr msg (Function)) where
     fromPtr  = RpcHelpers.isClientFromPtr
-instance (Classes.ToPtr s Function) where
+instance (Classes.ToPtr s (Function)) where
     toPtr  = RpcHelpers.isClientToPtr
-instance (Classes.Decerialize Function) where
-    type Cerial msg Function = (Capnp.Gen.ById.X85150b117366d14b.Function msg)
+instance (Classes.Decerialize (Function)) where
+    type Cerial msg (Function) = (Capnp.Gen.ById.X85150b117366d14b.Function msg)
     decerialize (Capnp.Gen.ById.X85150b117366d14b.Function'newtype_ maybeCap) = case maybeCap of
         (Std_.Nothing) ->
             (Std_.pure (Function Message.nullClient))
         (Std_.Just cap) ->
             (Function <$> (Untyped.getClient cap))
-instance (Classes.Cerialize Function) where
+instance (Classes.Cerialize s (Function)) where
     cerialize msg (Function client) = (Capnp.Gen.ById.X85150b117366d14b.Function'newtype_ <$> (Std_.Just <$> (Untyped.appendCap msg client)))
-instance (Server.Server Std_.IO Function)
-instance (Function'server_ Std_.IO Function) where
+instance (Server.Server Std_.IO (Function))
+instance (Function'server_ Std_.IO (Function)) where
     function'call (Function client) = (Rpc.clientMethodHandler 17143016017778443156 0 client)
 data Function'call'params 
     = Function'call'params 
@@ -560,34 +562,34 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Function'call'params) where
+instance (Default.Default (Function'call'params)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Function'call'params) where
+instance (Classes.FromStruct Message.ConstMsg (Function'call'params)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Function'call'params) where
-    type Cerial msg Function'call'params = (Capnp.Gen.ById.X85150b117366d14b.Function'call'params msg)
+instance (Classes.Decerialize (Function'call'params)) where
+    type Cerial msg (Function'call'params) = (Capnp.Gen.ById.X85150b117366d14b.Function'call'params msg)
     decerialize raw = (Function'call'params <$> ((Capnp.Gen.ById.X85150b117366d14b.get_Function'call'params'params raw) >>= Classes.decerialize))
-instance (Classes.Marshal Function'call'params) where
+instance (Classes.Marshal s (Function'call'params)) where
     marshalInto raw_ value_ = case value_ of
         Function'call'params{..} ->
             (do
                 ((Classes.cerialize (Untyped.message raw_) params) >>= (Capnp.Gen.ById.X85150b117366d14b.set_Function'call'params'params raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Function'call'params)
-instance (Classes.Cerialize (V.Vector Function'call'params)) where
+instance (Classes.Cerialize s (Function'call'params))
+instance (Classes.Cerialize s (V.Vector (Function'call'params))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Function'call'params))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Function'call'params)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Function'call'params)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Function'call'params))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Function'call'params))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Function'call'params)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Function'call'params)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Function'call'params))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Function'call'params))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Function'call'params)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Function'call'params)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Function'call'params))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Function'call'results 
     = Function'call'results 
@@ -595,49 +597,49 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Function'call'results) where
+instance (Default.Default (Function'call'results)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Function'call'results) where
+instance (Classes.FromStruct Message.ConstMsg (Function'call'results)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Function'call'results) where
-    type Cerial msg Function'call'results = (Capnp.Gen.ById.X85150b117366d14b.Function'call'results msg)
+instance (Classes.Decerialize (Function'call'results)) where
+    type Cerial msg (Function'call'results) = (Capnp.Gen.ById.X85150b117366d14b.Function'call'results msg)
     decerialize raw = (Function'call'results <$> (Capnp.Gen.ById.X85150b117366d14b.get_Function'call'results'value raw))
-instance (Classes.Marshal Function'call'results) where
+instance (Classes.Marshal s (Function'call'results)) where
     marshalInto raw_ value_ = case value_ of
         Function'call'results{..} ->
             (do
                 (Capnp.Gen.ById.X85150b117366d14b.set_Function'call'results'value raw_ value)
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Function'call'results)
-instance (Classes.Cerialize (V.Vector Function'call'results)) where
+instance (Classes.Cerialize s (Function'call'results))
+instance (Classes.Cerialize s (V.Vector (Function'call'results))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Function'call'results))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Function'call'results)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Function'call'results)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Function'call'results))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Function'call'results))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Function'call'results)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Function'call'results)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Function'call'results))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Function'call'results))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Function'call'results)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Function'call'results)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Function'call'results))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 instance (Classes.Decerialize Capnp.Gen.ById.X85150b117366d14b.Operator) where
     type Cerial msg Capnp.Gen.ById.X85150b117366d14b.Operator = Capnp.Gen.ById.X85150b117366d14b.Operator
     decerialize  = Std_.pure
-instance (Classes.Cerialize Capnp.Gen.ById.X85150b117366d14b.Operator) where
+instance (Classes.Cerialize s Capnp.Gen.ById.X85150b117366d14b.Operator) where
     cerialize _ = Std_.pure
-instance (Classes.Cerialize (V.Vector Capnp.Gen.ById.X85150b117366d14b.Operator)) where
+instance (Classes.Cerialize s (V.Vector Capnp.Gen.ById.X85150b117366d14b.Operator)) where
     cerialize  = Classes.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector Capnp.Gen.ById.X85150b117366d14b.Operator))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector Capnp.Gen.ById.X85150b117366d14b.Operator))) where
     cerialize  = Classes.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.X85150b117366d14b.Operator)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.X85150b117366d14b.Operator)))) where
     cerialize  = Classes.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.X85150b117366d14b.Operator))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.X85150b117366d14b.Operator))))) where
     cerialize  = Classes.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.X85150b117366d14b.Operator)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.X85150b117366d14b.Operator)))))) where
     cerialize  = Classes.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.X85150b117366d14b.Operator))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.X85150b117366d14b.Operator))))))) where
     cerialize  = Classes.cerializeBasicVec
diff --git a/examples/gen/lib/Capnp/Gen/Echo.hs b/examples/gen/lib/Capnp/Gen/Echo.hs
--- a/examples/gen/lib/Capnp/Gen/Echo.hs
+++ b/examples/gen/lib/Capnp/Gen/Echo.hs
@@ -31,8 +31,6 @@
     toPtr msg (Echo'newtype_ (Std_.Just cap)) = (Std_.pure (Std_.Just (Untyped.PtrCap cap)))
 newtype Echo'echo'params msg
     = Echo'echo'params'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Echo'echo'params) where
-    tMsg f (Echo'echo'params'newtype_ s) = (Echo'echo'params'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Echo'echo'params msg)) where
     fromStruct struct = (Std_.pure (Echo'echo'params'newtype_ struct))
 instance (Classes.ToStruct msg (Echo'echo'params msg)) where
@@ -61,12 +59,14 @@
 instance (Basics.MutListElem s (Echo'echo'params (Message.MutMsg s))) where
     setIndex (Echo'echo'params'newtype_ elt) i (Echo'echo'params'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Echo'echo'params'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_Echo'echo'params'query :: ((Untyped.ReadCtx m msg)) => (Echo'echo'params msg) -> (m (Basics.Text msg))
+get_Echo'echo'params'query :: ((Untyped.ReadCtx m msg)
+                              ,(Classes.FromPtr msg (Basics.Text msg))) => (Echo'echo'params msg) -> (m (Basics.Text msg))
 get_Echo'echo'params'query (Echo'echo'params'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Echo'echo'params'query :: ((Untyped.RWCtx m s)) => (Echo'echo'params (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
+set_Echo'echo'params'query :: ((Untyped.RWCtx m s)
+                              ,(Classes.ToPtr s (Basics.Text (Message.MutMsg s)))) => (Echo'echo'params (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
 set_Echo'echo'params'query (Echo'echo'params'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -81,8 +81,6 @@
     )
 newtype Echo'echo'results msg
     = Echo'echo'results'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Echo'echo'results) where
-    tMsg f (Echo'echo'results'newtype_ s) = (Echo'echo'results'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Echo'echo'results msg)) where
     fromStruct struct = (Std_.pure (Echo'echo'results'newtype_ struct))
 instance (Classes.ToStruct msg (Echo'echo'results msg)) where
@@ -111,12 +109,14 @@
 instance (Basics.MutListElem s (Echo'echo'results (Message.MutMsg s))) where
     setIndex (Echo'echo'results'newtype_ elt) i (Echo'echo'results'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Echo'echo'results'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_Echo'echo'results'reply :: ((Untyped.ReadCtx m msg)) => (Echo'echo'results msg) -> (m (Basics.Text msg))
+get_Echo'echo'results'reply :: ((Untyped.ReadCtx m msg)
+                               ,(Classes.FromPtr msg (Basics.Text msg))) => (Echo'echo'results msg) -> (m (Basics.Text msg))
 get_Echo'echo'results'reply (Echo'echo'results'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Echo'echo'results'reply :: ((Untyped.RWCtx m s)) => (Echo'echo'results (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
+set_Echo'echo'results'reply :: ((Untyped.RWCtx m s)
+                               ,(Classes.ToPtr s (Basics.Text (Message.MutMsg s)))) => (Echo'echo'results (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
 set_Echo'echo'results'reply (Echo'echo'results'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
diff --git a/examples/gen/lib/Capnp/Gen/Echo/Pure.hs b/examples/gen/lib/Capnp/Gen/Echo/Pure.hs
--- a/examples/gen/lib/Capnp/Gen/Echo/Pure.hs
+++ b/examples/gen/lib/Capnp/Gen/Echo/Pure.hs
@@ -2,9 +2,11 @@
 {-# LANGUAGE DuplicateRecordFields #-}
 {-# LANGUAGE FlexibleContexts #-}
 {-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE FunctionalDependencies #-}
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE UndecidableInstances #-}
 {-# OPTIONS_GHC -Wno-unused-imports #-}
 {-# OPTIONS_GHC -Wno-dodgy-exports #-}
 {-# OPTIONS_GHC -Wno-unused-matches #-}
@@ -47,8 +49,8 @@
     {-# MINIMAL echo'echo #-}
     echo'echo :: cap -> (Server.MethodHandler m Echo'echo'params Echo'echo'results)
     echo'echo _ = Server.methodUnimplemented
-export_Echo :: ((Echo'server_ Std_.IO a)
-               ,(STM.MonadSTM m)) => Supervisors.Supervisor -> a -> (m Echo)
+export_Echo :: ((STM.MonadSTM m)
+               ,(Echo'server_ Std_.IO cap)) => Supervisors.Supervisor -> cap -> (m (Echo))
 export_Echo sup_ server_ = (STM.liftSTM (Echo <$> (Rpc.export sup_ Server.ServerOps{handleCast = (Server.unwrap server_)
                                                                                    ,handleStop = (Server.shutdown server_)
                                                                                    ,handleCall = (\interfaceId_ methodId_ -> case interfaceId_ of
@@ -60,24 +62,24 @@
                                                                                                    Server.methodUnimplemented
                                                                                        _ ->
                                                                                            Server.methodUnimplemented)})))
-instance (Rpc.IsClient Echo) where
+instance (Rpc.IsClient (Echo)) where
     fromClient  = Echo
     toClient (Echo client) = client
-instance (Classes.FromPtr msg Echo) where
+instance (Classes.FromPtr msg (Echo)) where
     fromPtr  = RpcHelpers.isClientFromPtr
-instance (Classes.ToPtr s Echo) where
+instance (Classes.ToPtr s (Echo)) where
     toPtr  = RpcHelpers.isClientToPtr
-instance (Classes.Decerialize Echo) where
-    type Cerial msg Echo = (Capnp.Gen.ById.Xd0a87f36fa0182f5.Echo msg)
+instance (Classes.Decerialize (Echo)) where
+    type Cerial msg (Echo) = (Capnp.Gen.ById.Xd0a87f36fa0182f5.Echo msg)
     decerialize (Capnp.Gen.ById.Xd0a87f36fa0182f5.Echo'newtype_ maybeCap) = case maybeCap of
         (Std_.Nothing) ->
             (Std_.pure (Echo Message.nullClient))
         (Std_.Just cap) ->
             (Echo <$> (Untyped.getClient cap))
-instance (Classes.Cerialize Echo) where
+instance (Classes.Cerialize s (Echo)) where
     cerialize msg (Echo client) = (Capnp.Gen.ById.Xd0a87f36fa0182f5.Echo'newtype_ <$> (Std_.Just <$> (Untyped.appendCap msg client)))
-instance (Server.Server Std_.IO Echo)
-instance (Echo'server_ Std_.IO Echo) where
+instance (Server.Server Std_.IO (Echo))
+instance (Echo'server_ Std_.IO (Echo)) where
     echo'echo (Echo client) = (Rpc.clientMethodHandler 16940812395455687611 0 client)
 data Echo'echo'params 
     = Echo'echo'params 
@@ -85,34 +87,34 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Echo'echo'params) where
+instance (Default.Default (Echo'echo'params)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Echo'echo'params) where
+instance (Classes.FromStruct Message.ConstMsg (Echo'echo'params)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Echo'echo'params) where
-    type Cerial msg Echo'echo'params = (Capnp.Gen.ById.Xd0a87f36fa0182f5.Echo'echo'params msg)
+instance (Classes.Decerialize (Echo'echo'params)) where
+    type Cerial msg (Echo'echo'params) = (Capnp.Gen.ById.Xd0a87f36fa0182f5.Echo'echo'params msg)
     decerialize raw = (Echo'echo'params <$> ((Capnp.Gen.ById.Xd0a87f36fa0182f5.get_Echo'echo'params'query raw) >>= Classes.decerialize))
-instance (Classes.Marshal Echo'echo'params) where
+instance (Classes.Marshal s (Echo'echo'params)) where
     marshalInto raw_ value_ = case value_ of
         Echo'echo'params{..} ->
             (do
                 ((Classes.cerialize (Untyped.message raw_) query) >>= (Capnp.Gen.ById.Xd0a87f36fa0182f5.set_Echo'echo'params'query raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Echo'echo'params)
-instance (Classes.Cerialize (V.Vector Echo'echo'params)) where
+instance (Classes.Cerialize s (Echo'echo'params))
+instance (Classes.Cerialize s (V.Vector (Echo'echo'params))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Echo'echo'params))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Echo'echo'params)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Echo'echo'params)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Echo'echo'params))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Echo'echo'params))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Echo'echo'params)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Echo'echo'params)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Echo'echo'params))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Echo'echo'params))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Echo'echo'params)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Echo'echo'params)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Echo'echo'params))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Echo'echo'results 
     = Echo'echo'results 
@@ -120,32 +122,32 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Echo'echo'results) where
+instance (Default.Default (Echo'echo'results)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Echo'echo'results) where
+instance (Classes.FromStruct Message.ConstMsg (Echo'echo'results)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Echo'echo'results) where
-    type Cerial msg Echo'echo'results = (Capnp.Gen.ById.Xd0a87f36fa0182f5.Echo'echo'results msg)
+instance (Classes.Decerialize (Echo'echo'results)) where
+    type Cerial msg (Echo'echo'results) = (Capnp.Gen.ById.Xd0a87f36fa0182f5.Echo'echo'results msg)
     decerialize raw = (Echo'echo'results <$> ((Capnp.Gen.ById.Xd0a87f36fa0182f5.get_Echo'echo'results'reply raw) >>= Classes.decerialize))
-instance (Classes.Marshal Echo'echo'results) where
+instance (Classes.Marshal s (Echo'echo'results)) where
     marshalInto raw_ value_ = case value_ of
         Echo'echo'results{..} ->
             (do
                 ((Classes.cerialize (Untyped.message raw_) reply) >>= (Capnp.Gen.ById.Xd0a87f36fa0182f5.set_Echo'echo'results'reply raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Echo'echo'results)
-instance (Classes.Cerialize (V.Vector Echo'echo'results)) where
+instance (Classes.Cerialize s (Echo'echo'results))
+instance (Classes.Cerialize s (V.Vector (Echo'echo'results))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Echo'echo'results))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Echo'echo'results)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Echo'echo'results)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Echo'echo'results))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Echo'echo'results))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Echo'echo'results)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Echo'echo'results)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Echo'echo'results))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Echo'echo'results))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Echo'echo'results)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Echo'echo'results)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Echo'echo'results))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
diff --git a/gen/lib/Capnp/Gen/Capnp/Compat/Json.hs b/gen/lib/Capnp/Gen/Capnp/Compat/Json.hs
--- a/gen/lib/Capnp/Gen/Capnp/Compat/Json.hs
+++ b/gen/lib/Capnp/Gen/Capnp/Compat/Json.hs
@@ -24,8 +24,6 @@
 import Prelude ((<$>), (<*>), (>>=))
 newtype Value msg
     = Value'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Value) where
-    tMsg f (Value'newtype_ s) = (Value'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Value msg)) where
     fromStruct struct = (Std_.pure (Value'newtype_ struct))
 instance (Classes.ToStruct msg (Value msg)) where
@@ -96,7 +94,8 @@
             _ ->
                 (Std_.pure (Value'unknown' (Std_.fromIntegral tag)))
         )
-get_Value' :: ((Untyped.ReadCtx m msg)) => (Value msg) -> (m (Value' msg))
+get_Value' :: ((Untyped.ReadCtx m msg)
+              ,(Classes.FromStruct msg (Value' msg))) => (Value msg) -> (m (Value' msg))
 get_Value' (Value'newtype_ struct) = (Classes.fromStruct struct)
 set_Value'null :: ((Untyped.RWCtx m s)) => (Value (Message.MutMsg s)) -> (m ())
 set_Value'null (Value'newtype_ struct) = (do
@@ -113,7 +112,8 @@
     (GenHelpers.setWordField struct (2 :: Std_.Word16) 0 0 0)
     (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word64) 1 0 0)
     )
-set_Value'string :: ((Untyped.RWCtx m s)) => (Value (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
+set_Value'string :: ((Untyped.RWCtx m s)
+                    ,(Classes.ToPtr s (Basics.Text (Message.MutMsg s)))) => (Value (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
 set_Value'string (Value'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (3 :: Std_.Word16) 0 0 0)
     (do
@@ -121,7 +121,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Value'array :: ((Untyped.RWCtx m s)) => (Value (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Value (Message.MutMsg s))) -> (m ())
+set_Value'array :: ((Untyped.RWCtx m s)
+                   ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Value (Message.MutMsg s))))) => (Value (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Value (Message.MutMsg s))) -> (m ())
 set_Value'array (Value'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (4 :: Std_.Word16) 0 0 0)
     (do
@@ -129,7 +130,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Value'object :: ((Untyped.RWCtx m s)) => (Value (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Value'Field (Message.MutMsg s))) -> (m ())
+set_Value'object :: ((Untyped.RWCtx m s)
+                    ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Value'Field (Message.MutMsg s))))) => (Value (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Value'Field (Message.MutMsg s))) -> (m ())
 set_Value'object (Value'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (5 :: Std_.Word16) 0 0 0)
     (do
@@ -137,7 +139,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Value'call :: ((Untyped.RWCtx m s)) => (Value (Message.MutMsg s)) -> (Value'Call (Message.MutMsg s)) -> (m ())
+set_Value'call :: ((Untyped.RWCtx m s)
+                  ,(Classes.ToPtr s (Value'Call (Message.MutMsg s)))) => (Value (Message.MutMsg s)) -> (Value'Call (Message.MutMsg s)) -> (m ())
 set_Value'call (Value'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (6 :: Std_.Word16) 0 0 0)
     (do
@@ -149,8 +152,6 @@
 set_Value'unknown' (Value'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 0 0 0)
 newtype Value'Field msg
     = Value'Field'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Value'Field) where
-    tMsg f (Value'Field'newtype_ s) = (Value'Field'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Value'Field msg)) where
     fromStruct struct = (Std_.pure (Value'Field'newtype_ struct))
 instance (Classes.ToStruct msg (Value'Field msg)) where
@@ -179,12 +180,14 @@
 instance (Basics.MutListElem s (Value'Field (Message.MutMsg s))) where
     setIndex (Value'Field'newtype_ elt) i (Value'Field'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Value'Field'List_ <$> (Untyped.allocCompositeList msg 0 2 len))
-get_Value'Field'name :: ((Untyped.ReadCtx m msg)) => (Value'Field msg) -> (m (Basics.Text msg))
+get_Value'Field'name :: ((Untyped.ReadCtx m msg)
+                        ,(Classes.FromPtr msg (Basics.Text msg))) => (Value'Field msg) -> (m (Basics.Text msg))
 get_Value'Field'name (Value'Field'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Value'Field'name :: ((Untyped.RWCtx m s)) => (Value'Field (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
+set_Value'Field'name :: ((Untyped.RWCtx m s)
+                        ,(Classes.ToPtr s (Basics.Text (Message.MutMsg s)))) => (Value'Field (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
 set_Value'Field'name (Value'Field'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -197,12 +200,14 @@
     (set_Value'Field'name struct result)
     (Std_.pure result)
     )
-get_Value'Field'value :: ((Untyped.ReadCtx m msg)) => (Value'Field msg) -> (m (Value msg))
+get_Value'Field'value :: ((Untyped.ReadCtx m msg)
+                         ,(Classes.FromPtr msg (Value msg))) => (Value'Field msg) -> (m (Value msg))
 get_Value'Field'value (Value'Field'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 1 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Value'Field'value :: ((Untyped.RWCtx m s)) => (Value'Field (Message.MutMsg s)) -> (Value (Message.MutMsg s)) -> (m ())
+set_Value'Field'value :: ((Untyped.RWCtx m s)
+                         ,(Classes.ToPtr s (Value (Message.MutMsg s)))) => (Value'Field (Message.MutMsg s)) -> (Value (Message.MutMsg s)) -> (m ())
 set_Value'Field'value (Value'Field'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 1 struct)
@@ -217,8 +222,6 @@
     )
 newtype Value'Call msg
     = Value'Call'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Value'Call) where
-    tMsg f (Value'Call'newtype_ s) = (Value'Call'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Value'Call msg)) where
     fromStruct struct = (Std_.pure (Value'Call'newtype_ struct))
 instance (Classes.ToStruct msg (Value'Call msg)) where
@@ -247,12 +250,14 @@
 instance (Basics.MutListElem s (Value'Call (Message.MutMsg s))) where
     setIndex (Value'Call'newtype_ elt) i (Value'Call'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Value'Call'List_ <$> (Untyped.allocCompositeList msg 0 2 len))
-get_Value'Call'function :: ((Untyped.ReadCtx m msg)) => (Value'Call msg) -> (m (Basics.Text msg))
+get_Value'Call'function :: ((Untyped.ReadCtx m msg)
+                           ,(Classes.FromPtr msg (Basics.Text msg))) => (Value'Call msg) -> (m (Basics.Text msg))
 get_Value'Call'function (Value'Call'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Value'Call'function :: ((Untyped.RWCtx m s)) => (Value'Call (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
+set_Value'Call'function :: ((Untyped.RWCtx m s)
+                           ,(Classes.ToPtr s (Basics.Text (Message.MutMsg s)))) => (Value'Call (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
 set_Value'Call'function (Value'Call'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -265,12 +270,14 @@
     (set_Value'Call'function struct result)
     (Std_.pure result)
     )
-get_Value'Call'params :: ((Untyped.ReadCtx m msg)) => (Value'Call msg) -> (m (Basics.List msg (Value msg)))
+get_Value'Call'params :: ((Untyped.ReadCtx m msg)
+                         ,(Classes.FromPtr msg (Basics.List msg (Value msg)))) => (Value'Call msg) -> (m (Basics.List msg (Value msg)))
 get_Value'Call'params (Value'Call'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 1 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Value'Call'params :: ((Untyped.RWCtx m s)) => (Value'Call (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Value (Message.MutMsg s))) -> (m ())
+set_Value'Call'params :: ((Untyped.RWCtx m s)
+                         ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Value (Message.MutMsg s))))) => (Value'Call (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Value (Message.MutMsg s))) -> (m ())
 set_Value'Call'params (Value'Call'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 1 struct)
@@ -285,8 +292,6 @@
     )
 newtype FlattenOptions msg
     = FlattenOptions'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg FlattenOptions) where
-    tMsg f (FlattenOptions'newtype_ s) = (FlattenOptions'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (FlattenOptions msg)) where
     fromStruct struct = (Std_.pure (FlattenOptions'newtype_ struct))
 instance (Classes.ToStruct msg (FlattenOptions msg)) where
@@ -315,12 +320,14 @@
 instance (Basics.MutListElem s (FlattenOptions (Message.MutMsg s))) where
     setIndex (FlattenOptions'newtype_ elt) i (FlattenOptions'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (FlattenOptions'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_FlattenOptions'prefix :: ((Untyped.ReadCtx m msg)) => (FlattenOptions msg) -> (m (Basics.Text msg))
+get_FlattenOptions'prefix :: ((Untyped.ReadCtx m msg)
+                             ,(Classes.FromPtr msg (Basics.Text msg))) => (FlattenOptions msg) -> (m (Basics.Text msg))
 get_FlattenOptions'prefix (FlattenOptions'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_FlattenOptions'prefix :: ((Untyped.RWCtx m s)) => (FlattenOptions (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
+set_FlattenOptions'prefix :: ((Untyped.RWCtx m s)
+                             ,(Classes.ToPtr s (Basics.Text (Message.MutMsg s)))) => (FlattenOptions (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
 set_FlattenOptions'prefix (FlattenOptions'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -335,8 +342,6 @@
     )
 newtype DiscriminatorOptions msg
     = DiscriminatorOptions'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg DiscriminatorOptions) where
-    tMsg f (DiscriminatorOptions'newtype_ s) = (DiscriminatorOptions'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (DiscriminatorOptions msg)) where
     fromStruct struct = (Std_.pure (DiscriminatorOptions'newtype_ struct))
 instance (Classes.ToStruct msg (DiscriminatorOptions msg)) where
@@ -365,12 +370,14 @@
 instance (Basics.MutListElem s (DiscriminatorOptions (Message.MutMsg s))) where
     setIndex (DiscriminatorOptions'newtype_ elt) i (DiscriminatorOptions'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (DiscriminatorOptions'List_ <$> (Untyped.allocCompositeList msg 0 2 len))
-get_DiscriminatorOptions'name :: ((Untyped.ReadCtx m msg)) => (DiscriminatorOptions msg) -> (m (Basics.Text msg))
+get_DiscriminatorOptions'name :: ((Untyped.ReadCtx m msg)
+                                 ,(Classes.FromPtr msg (Basics.Text msg))) => (DiscriminatorOptions msg) -> (m (Basics.Text msg))
 get_DiscriminatorOptions'name (DiscriminatorOptions'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_DiscriminatorOptions'name :: ((Untyped.RWCtx m s)) => (DiscriminatorOptions (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
+set_DiscriminatorOptions'name :: ((Untyped.RWCtx m s)
+                                 ,(Classes.ToPtr s (Basics.Text (Message.MutMsg s)))) => (DiscriminatorOptions (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
 set_DiscriminatorOptions'name (DiscriminatorOptions'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -383,12 +390,14 @@
     (set_DiscriminatorOptions'name struct result)
     (Std_.pure result)
     )
-get_DiscriminatorOptions'valueName :: ((Untyped.ReadCtx m msg)) => (DiscriminatorOptions msg) -> (m (Basics.Text msg))
+get_DiscriminatorOptions'valueName :: ((Untyped.ReadCtx m msg)
+                                      ,(Classes.FromPtr msg (Basics.Text msg))) => (DiscriminatorOptions msg) -> (m (Basics.Text msg))
 get_DiscriminatorOptions'valueName (DiscriminatorOptions'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 1 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_DiscriminatorOptions'valueName :: ((Untyped.RWCtx m s)) => (DiscriminatorOptions (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
+set_DiscriminatorOptions'valueName :: ((Untyped.RWCtx m s)
+                                      ,(Classes.ToPtr s (Basics.Text (Message.MutMsg s)))) => (DiscriminatorOptions (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
 set_DiscriminatorOptions'valueName (DiscriminatorOptions'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 1 struct)
diff --git a/gen/lib/Capnp/Gen/Capnp/Compat/Json/Pure.hs b/gen/lib/Capnp/Gen/Capnp/Compat/Json/Pure.hs
--- a/gen/lib/Capnp/Gen/Capnp/Compat/Json/Pure.hs
+++ b/gen/lib/Capnp/Gen/Capnp/Compat/Json/Pure.hs
@@ -2,9 +2,11 @@
 {-# LANGUAGE DuplicateRecordFields #-}
 {-# LANGUAGE FlexibleContexts #-}
 {-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE FunctionalDependencies #-}
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE UndecidableInstances #-}
 {-# OPTIONS_GHC -Wno-unused-imports #-}
 {-# OPTIONS_GHC -Wno-dodgy-exports #-}
 {-# OPTIONS_GHC -Wno-unused-matches #-}
@@ -43,12 +45,12 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Value) where
+instance (Default.Default (Value)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Value) where
+instance (Classes.FromStruct Message.ConstMsg (Value)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Value) where
-    type Cerial msg Value = (Capnp.Gen.ById.X8ef99297a43a5e34.Value msg)
+instance (Classes.Decerialize (Value)) where
+    type Cerial msg (Value) = (Capnp.Gen.ById.X8ef99297a43a5e34.Value msg)
     decerialize raw = (do
         raw <- (Capnp.Gen.ById.X8ef99297a43a5e34.get_Value' raw)
         case raw of
@@ -69,7 +71,7 @@
             (Capnp.Gen.ById.X8ef99297a43a5e34.Value'unknown' tag) ->
                 (Std_.pure (Value'unknown' tag))
         )
-instance (Classes.Marshal Value) where
+instance (Classes.Marshal s (Value)) where
     marshalInto raw_ value_ = case value_ of
         (Value'null) ->
             (Capnp.Gen.ById.X8ef99297a43a5e34.set_Value'null raw_)
@@ -87,20 +89,20 @@
             ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X8ef99297a43a5e34.set_Value'call raw_))
         (Value'unknown' tag) ->
             (Capnp.Gen.ById.X8ef99297a43a5e34.set_Value'unknown' raw_ tag)
-instance (Classes.Cerialize Value)
-instance (Classes.Cerialize (V.Vector Value)) where
+instance (Classes.Cerialize s (Value))
+instance (Classes.Cerialize s (V.Vector (Value))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Value))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Value)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Value)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Value))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Value))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Value)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Value)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Value))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Value))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Value)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Value)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Value))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Value'Field 
     = Value'Field 
@@ -109,15 +111,15 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Value'Field) where
+instance (Default.Default (Value'Field)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Value'Field) where
+instance (Classes.FromStruct Message.ConstMsg (Value'Field)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Value'Field) where
-    type Cerial msg Value'Field = (Capnp.Gen.ById.X8ef99297a43a5e34.Value'Field msg)
+instance (Classes.Decerialize (Value'Field)) where
+    type Cerial msg (Value'Field) = (Capnp.Gen.ById.X8ef99297a43a5e34.Value'Field msg)
     decerialize raw = (Value'Field <$> ((Capnp.Gen.ById.X8ef99297a43a5e34.get_Value'Field'name raw) >>= Classes.decerialize)
                                    <*> ((Capnp.Gen.ById.X8ef99297a43a5e34.get_Value'Field'value raw) >>= Classes.decerialize))
-instance (Classes.Marshal Value'Field) where
+instance (Classes.Marshal s (Value'Field)) where
     marshalInto raw_ value_ = case value_ of
         Value'Field{..} ->
             (do
@@ -125,20 +127,20 @@
                 ((Classes.cerialize (Untyped.message raw_) value) >>= (Capnp.Gen.ById.X8ef99297a43a5e34.set_Value'Field'value raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Value'Field)
-instance (Classes.Cerialize (V.Vector Value'Field)) where
+instance (Classes.Cerialize s (Value'Field))
+instance (Classes.Cerialize s (V.Vector (Value'Field))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Value'Field))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Value'Field)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Value'Field)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Value'Field))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Value'Field))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Value'Field)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Value'Field)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Value'Field))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Value'Field))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Value'Field)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Value'Field)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Value'Field))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Value'Call 
     = Value'Call 
@@ -147,15 +149,15 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Value'Call) where
+instance (Default.Default (Value'Call)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Value'Call) where
+instance (Classes.FromStruct Message.ConstMsg (Value'Call)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Value'Call) where
-    type Cerial msg Value'Call = (Capnp.Gen.ById.X8ef99297a43a5e34.Value'Call msg)
+instance (Classes.Decerialize (Value'Call)) where
+    type Cerial msg (Value'Call) = (Capnp.Gen.ById.X8ef99297a43a5e34.Value'Call msg)
     decerialize raw = (Value'Call <$> ((Capnp.Gen.ById.X8ef99297a43a5e34.get_Value'Call'function raw) >>= Classes.decerialize)
                                   <*> ((Capnp.Gen.ById.X8ef99297a43a5e34.get_Value'Call'params raw) >>= Classes.decerialize))
-instance (Classes.Marshal Value'Call) where
+instance (Classes.Marshal s (Value'Call)) where
     marshalInto raw_ value_ = case value_ of
         Value'Call{..} ->
             (do
@@ -163,20 +165,20 @@
                 ((Classes.cerialize (Untyped.message raw_) params) >>= (Capnp.Gen.ById.X8ef99297a43a5e34.set_Value'Call'params raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Value'Call)
-instance (Classes.Cerialize (V.Vector Value'Call)) where
+instance (Classes.Cerialize s (Value'Call))
+instance (Classes.Cerialize s (V.Vector (Value'Call))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Value'Call))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Value'Call)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Value'Call)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Value'Call))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Value'Call))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Value'Call)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Value'Call)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Value'Call))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Value'Call))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Value'Call)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Value'Call)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Value'Call))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data FlattenOptions 
     = FlattenOptions 
@@ -184,34 +186,34 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default FlattenOptions) where
+instance (Default.Default (FlattenOptions)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg FlattenOptions) where
+instance (Classes.FromStruct Message.ConstMsg (FlattenOptions)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize FlattenOptions) where
-    type Cerial msg FlattenOptions = (Capnp.Gen.ById.X8ef99297a43a5e34.FlattenOptions msg)
+instance (Classes.Decerialize (FlattenOptions)) where
+    type Cerial msg (FlattenOptions) = (Capnp.Gen.ById.X8ef99297a43a5e34.FlattenOptions msg)
     decerialize raw = (FlattenOptions <$> ((Capnp.Gen.ById.X8ef99297a43a5e34.get_FlattenOptions'prefix raw) >>= Classes.decerialize))
-instance (Classes.Marshal FlattenOptions) where
+instance (Classes.Marshal s (FlattenOptions)) where
     marshalInto raw_ value_ = case value_ of
         FlattenOptions{..} ->
             (do
                 ((Classes.cerialize (Untyped.message raw_) prefix) >>= (Capnp.Gen.ById.X8ef99297a43a5e34.set_FlattenOptions'prefix raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize FlattenOptions)
-instance (Classes.Cerialize (V.Vector FlattenOptions)) where
+instance (Classes.Cerialize s (FlattenOptions))
+instance (Classes.Cerialize s (V.Vector (FlattenOptions))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector FlattenOptions))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (FlattenOptions)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector FlattenOptions)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (FlattenOptions))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector FlattenOptions))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (FlattenOptions)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector FlattenOptions)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (FlattenOptions))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector FlattenOptions))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (FlattenOptions)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector FlattenOptions)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (FlattenOptions))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data DiscriminatorOptions 
     = DiscriminatorOptions 
@@ -220,15 +222,15 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default DiscriminatorOptions) where
+instance (Default.Default (DiscriminatorOptions)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg DiscriminatorOptions) where
+instance (Classes.FromStruct Message.ConstMsg (DiscriminatorOptions)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize DiscriminatorOptions) where
-    type Cerial msg DiscriminatorOptions = (Capnp.Gen.ById.X8ef99297a43a5e34.DiscriminatorOptions msg)
+instance (Classes.Decerialize (DiscriminatorOptions)) where
+    type Cerial msg (DiscriminatorOptions) = (Capnp.Gen.ById.X8ef99297a43a5e34.DiscriminatorOptions msg)
     decerialize raw = (DiscriminatorOptions <$> ((Capnp.Gen.ById.X8ef99297a43a5e34.get_DiscriminatorOptions'name raw) >>= Classes.decerialize)
                                             <*> ((Capnp.Gen.ById.X8ef99297a43a5e34.get_DiscriminatorOptions'valueName raw) >>= Classes.decerialize))
-instance (Classes.Marshal DiscriminatorOptions) where
+instance (Classes.Marshal s (DiscriminatorOptions)) where
     marshalInto raw_ value_ = case value_ of
         DiscriminatorOptions{..} ->
             (do
@@ -236,18 +238,18 @@
                 ((Classes.cerialize (Untyped.message raw_) valueName) >>= (Capnp.Gen.ById.X8ef99297a43a5e34.set_DiscriminatorOptions'valueName raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize DiscriminatorOptions)
-instance (Classes.Cerialize (V.Vector DiscriminatorOptions)) where
+instance (Classes.Cerialize s (DiscriminatorOptions))
+instance (Classes.Cerialize s (V.Vector (DiscriminatorOptions))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector DiscriminatorOptions))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (DiscriminatorOptions)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector DiscriminatorOptions)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (DiscriminatorOptions))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector DiscriminatorOptions))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (DiscriminatorOptions)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector DiscriminatorOptions)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (DiscriminatorOptions))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector DiscriminatorOptions))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (DiscriminatorOptions)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector DiscriminatorOptions)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (DiscriminatorOptions))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
diff --git a/gen/lib/Capnp/Gen/Capnp/Cxx/Pure.hs b/gen/lib/Capnp/Gen/Capnp/Cxx/Pure.hs
--- a/gen/lib/Capnp/Gen/Capnp/Cxx/Pure.hs
+++ b/gen/lib/Capnp/Gen/Capnp/Cxx/Pure.hs
@@ -2,9 +2,11 @@
 {-# LANGUAGE DuplicateRecordFields #-}
 {-# LANGUAGE FlexibleContexts #-}
 {-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE FunctionalDependencies #-}
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE UndecidableInstances #-}
 {-# OPTIONS_GHC -Wno-unused-imports #-}
 {-# OPTIONS_GHC -Wno-dodgy-exports #-}
 {-# OPTIONS_GHC -Wno-unused-matches #-}
diff --git a/gen/lib/Capnp/Gen/Capnp/Persistent.hs b/gen/lib/Capnp/Gen/Capnp/Persistent.hs
--- a/gen/lib/Capnp/Gen/Capnp/Persistent.hs
+++ b/gen/lib/Capnp/Gen/Capnp/Persistent.hs
@@ -22,34 +22,32 @@
 import qualified Data.Word as Std_
 import qualified Data.Int as Std_
 import Prelude ((<$>), (<*>), (>>=))
-newtype Persistent msg
+newtype Persistent sturdyRef owner msg
     = Persistent'newtype_ (Std_.Maybe (Untyped.Cap msg))
-instance (Classes.FromPtr msg (Persistent msg)) where
+instance (Classes.FromPtr msg (Persistent sturdyRef owner msg)) where
     fromPtr msg ptr = (Persistent'newtype_ <$> (Classes.fromPtr msg ptr))
-instance (Classes.ToPtr s (Persistent (Message.MutMsg s))) where
+instance (Classes.ToPtr s (Persistent sturdyRef owner (Message.MutMsg s))) where
     toPtr msg (Persistent'newtype_ (Std_.Nothing)) = (Std_.pure Std_.Nothing)
     toPtr msg (Persistent'newtype_ (Std_.Just cap)) = (Std_.pure (Std_.Just (Untyped.PtrCap cap)))
-newtype Persistent'SaveParams msg
+newtype Persistent'SaveParams sturdyRef owner msg
     = Persistent'SaveParams'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Persistent'SaveParams) where
-    tMsg f (Persistent'SaveParams'newtype_ s) = (Persistent'SaveParams'newtype_ <$> (Untyped.tMsg f s))
-instance (Classes.FromStruct msg (Persistent'SaveParams msg)) where
+instance (Classes.FromStruct msg (Persistent'SaveParams sturdyRef owner msg)) where
     fromStruct struct = (Std_.pure (Persistent'SaveParams'newtype_ struct))
-instance (Classes.ToStruct msg (Persistent'SaveParams msg)) where
+instance (Classes.ToStruct msg (Persistent'SaveParams sturdyRef owner msg)) where
     toStruct (Persistent'SaveParams'newtype_ struct) = struct
-instance (Untyped.HasMessage (Persistent'SaveParams msg)) where
-    type InMessage (Persistent'SaveParams msg) = msg
+instance (Untyped.HasMessage (Persistent'SaveParams sturdyRef owner msg)) where
+    type InMessage (Persistent'SaveParams sturdyRef owner msg) = msg
     message (Persistent'SaveParams'newtype_ struct) = (Untyped.message struct)
-instance (Untyped.MessageDefault (Persistent'SaveParams msg)) where
+instance (Untyped.MessageDefault (Persistent'SaveParams sturdyRef owner msg)) where
     messageDefault msg = (Persistent'SaveParams'newtype_ (Untyped.messageDefault msg))
-instance (Classes.FromPtr msg (Persistent'SaveParams msg)) where
+instance (Classes.FromPtr msg (Persistent'SaveParams sturdyRef owner msg)) where
     fromPtr msg ptr = (Persistent'SaveParams'newtype_ <$> (Classes.fromPtr msg ptr))
-instance (Classes.ToPtr s (Persistent'SaveParams (Message.MutMsg s))) where
+instance (Classes.ToPtr s (Persistent'SaveParams sturdyRef owner (Message.MutMsg s))) where
     toPtr msg (Persistent'SaveParams'newtype_ struct) = (Classes.toPtr msg struct)
-instance (Classes.Allocate s (Persistent'SaveParams (Message.MutMsg s))) where
+instance (Classes.Allocate s (Persistent'SaveParams sturdyRef owner (Message.MutMsg s))) where
     new msg = (Persistent'SaveParams'newtype_ <$> (Untyped.allocStruct msg 0 1))
-instance (Basics.ListElem msg (Persistent'SaveParams msg)) where
-    newtype List msg (Persistent'SaveParams msg)
+instance (Basics.ListElem msg (Persistent'SaveParams sturdyRef owner msg)) where
+    newtype List msg (Persistent'SaveParams sturdyRef owner msg)
         = Persistent'SaveParams'List_ (Untyped.ListOf msg (Untyped.Struct msg))
     listFromPtr msg ptr = (Persistent'SaveParams'List_ <$> (Classes.fromPtr msg ptr))
     toUntypedList (Persistent'SaveParams'List_ l) = (Untyped.ListStruct l)
@@ -58,42 +56,42 @@
         elt <- (Untyped.index i l)
         (Classes.fromStruct elt)
         )
-instance (Basics.MutListElem s (Persistent'SaveParams (Message.MutMsg s))) where
+instance (Basics.MutListElem s (Persistent'SaveParams sturdyRef owner (Message.MutMsg s))) where
     setIndex (Persistent'SaveParams'newtype_ elt) i (Persistent'SaveParams'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Persistent'SaveParams'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_Persistent'SaveParams'sealFor :: ((Untyped.ReadCtx m msg)) => (Persistent'SaveParams msg) -> (m (Std_.Maybe (Untyped.Ptr msg)))
+get_Persistent'SaveParams'sealFor :: ((Untyped.ReadCtx m msg)
+                                     ,(Classes.FromPtr msg owner)) => (Persistent'SaveParams sturdyRef owner msg) -> (m owner)
 get_Persistent'SaveParams'sealFor (Persistent'SaveParams'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Persistent'SaveParams'sealFor :: ((Untyped.RWCtx m s)) => (Persistent'SaveParams (Message.MutMsg s)) -> (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))) -> (m ())
+set_Persistent'SaveParams'sealFor :: ((Untyped.RWCtx m s)
+                                     ,(Classes.ToPtr s owner)) => (Persistent'SaveParams sturdyRef owner (Message.MutMsg s)) -> owner -> (m ())
 set_Persistent'SaveParams'sealFor (Persistent'SaveParams'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
     )
-has_Persistent'SaveParams'sealFor :: ((Untyped.ReadCtx m msg)) => (Persistent'SaveParams msg) -> (m Std_.Bool)
+has_Persistent'SaveParams'sealFor :: ((Untyped.ReadCtx m msg)) => (Persistent'SaveParams sturdyRef owner msg) -> (m Std_.Bool)
 has_Persistent'SaveParams'sealFor (Persistent'SaveParams'newtype_ struct) = (Std_.isJust <$> (Untyped.getPtr 0 struct))
-newtype Persistent'SaveResults msg
+newtype Persistent'SaveResults sturdyRef owner msg
     = Persistent'SaveResults'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Persistent'SaveResults) where
-    tMsg f (Persistent'SaveResults'newtype_ s) = (Persistent'SaveResults'newtype_ <$> (Untyped.tMsg f s))
-instance (Classes.FromStruct msg (Persistent'SaveResults msg)) where
+instance (Classes.FromStruct msg (Persistent'SaveResults sturdyRef owner msg)) where
     fromStruct struct = (Std_.pure (Persistent'SaveResults'newtype_ struct))
-instance (Classes.ToStruct msg (Persistent'SaveResults msg)) where
+instance (Classes.ToStruct msg (Persistent'SaveResults sturdyRef owner msg)) where
     toStruct (Persistent'SaveResults'newtype_ struct) = struct
-instance (Untyped.HasMessage (Persistent'SaveResults msg)) where
-    type InMessage (Persistent'SaveResults msg) = msg
+instance (Untyped.HasMessage (Persistent'SaveResults sturdyRef owner msg)) where
+    type InMessage (Persistent'SaveResults sturdyRef owner msg) = msg
     message (Persistent'SaveResults'newtype_ struct) = (Untyped.message struct)
-instance (Untyped.MessageDefault (Persistent'SaveResults msg)) where
+instance (Untyped.MessageDefault (Persistent'SaveResults sturdyRef owner msg)) where
     messageDefault msg = (Persistent'SaveResults'newtype_ (Untyped.messageDefault msg))
-instance (Classes.FromPtr msg (Persistent'SaveResults msg)) where
+instance (Classes.FromPtr msg (Persistent'SaveResults sturdyRef owner msg)) where
     fromPtr msg ptr = (Persistent'SaveResults'newtype_ <$> (Classes.fromPtr msg ptr))
-instance (Classes.ToPtr s (Persistent'SaveResults (Message.MutMsg s))) where
+instance (Classes.ToPtr s (Persistent'SaveResults sturdyRef owner (Message.MutMsg s))) where
     toPtr msg (Persistent'SaveResults'newtype_ struct) = (Classes.toPtr msg struct)
-instance (Classes.Allocate s (Persistent'SaveResults (Message.MutMsg s))) where
+instance (Classes.Allocate s (Persistent'SaveResults sturdyRef owner (Message.MutMsg s))) where
     new msg = (Persistent'SaveResults'newtype_ <$> (Untyped.allocStruct msg 0 1))
-instance (Basics.ListElem msg (Persistent'SaveResults msg)) where
-    newtype List msg (Persistent'SaveResults msg)
+instance (Basics.ListElem msg (Persistent'SaveResults sturdyRef owner msg)) where
+    newtype List msg (Persistent'SaveResults sturdyRef owner msg)
         = Persistent'SaveResults'List_ (Untyped.ListOf msg (Untyped.Struct msg))
     listFromPtr msg ptr = (Persistent'SaveResults'List_ <$> (Classes.fromPtr msg ptr))
     toUntypedList (Persistent'SaveResults'List_ l) = (Untyped.ListStruct l)
@@ -102,49 +100,49 @@
         elt <- (Untyped.index i l)
         (Classes.fromStruct elt)
         )
-instance (Basics.MutListElem s (Persistent'SaveResults (Message.MutMsg s))) where
+instance (Basics.MutListElem s (Persistent'SaveResults sturdyRef owner (Message.MutMsg s))) where
     setIndex (Persistent'SaveResults'newtype_ elt) i (Persistent'SaveResults'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Persistent'SaveResults'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_Persistent'SaveResults'sturdyRef :: ((Untyped.ReadCtx m msg)) => (Persistent'SaveResults msg) -> (m (Std_.Maybe (Untyped.Ptr msg)))
+get_Persistent'SaveResults'sturdyRef :: ((Untyped.ReadCtx m msg)
+                                        ,(Classes.FromPtr msg sturdyRef)) => (Persistent'SaveResults sturdyRef owner msg) -> (m sturdyRef)
 get_Persistent'SaveResults'sturdyRef (Persistent'SaveResults'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Persistent'SaveResults'sturdyRef :: ((Untyped.RWCtx m s)) => (Persistent'SaveResults (Message.MutMsg s)) -> (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))) -> (m ())
+set_Persistent'SaveResults'sturdyRef :: ((Untyped.RWCtx m s)
+                                        ,(Classes.ToPtr s sturdyRef)) => (Persistent'SaveResults sturdyRef owner (Message.MutMsg s)) -> sturdyRef -> (m ())
 set_Persistent'SaveResults'sturdyRef (Persistent'SaveResults'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
     )
-has_Persistent'SaveResults'sturdyRef :: ((Untyped.ReadCtx m msg)) => (Persistent'SaveResults msg) -> (m Std_.Bool)
+has_Persistent'SaveResults'sturdyRef :: ((Untyped.ReadCtx m msg)) => (Persistent'SaveResults sturdyRef owner msg) -> (m Std_.Bool)
 has_Persistent'SaveResults'sturdyRef (Persistent'SaveResults'newtype_ struct) = (Std_.isJust <$> (Untyped.getPtr 0 struct))
-newtype RealmGateway msg
+newtype RealmGateway internalRef externalRef internalOwner externalOwner msg
     = RealmGateway'newtype_ (Std_.Maybe (Untyped.Cap msg))
-instance (Classes.FromPtr msg (RealmGateway msg)) where
+instance (Classes.FromPtr msg (RealmGateway internalRef externalRef internalOwner externalOwner msg)) where
     fromPtr msg ptr = (RealmGateway'newtype_ <$> (Classes.fromPtr msg ptr))
-instance (Classes.ToPtr s (RealmGateway (Message.MutMsg s))) where
+instance (Classes.ToPtr s (RealmGateway internalRef externalRef internalOwner externalOwner (Message.MutMsg s))) where
     toPtr msg (RealmGateway'newtype_ (Std_.Nothing)) = (Std_.pure Std_.Nothing)
     toPtr msg (RealmGateway'newtype_ (Std_.Just cap)) = (Std_.pure (Std_.Just (Untyped.PtrCap cap)))
-newtype RealmGateway'import'params msg
+newtype RealmGateway'import'params internalRef externalRef internalOwner externalOwner msg
     = RealmGateway'import'params'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg RealmGateway'import'params) where
-    tMsg f (RealmGateway'import'params'newtype_ s) = (RealmGateway'import'params'newtype_ <$> (Untyped.tMsg f s))
-instance (Classes.FromStruct msg (RealmGateway'import'params msg)) where
+instance (Classes.FromStruct msg (RealmGateway'import'params internalRef externalRef internalOwner externalOwner msg)) where
     fromStruct struct = (Std_.pure (RealmGateway'import'params'newtype_ struct))
-instance (Classes.ToStruct msg (RealmGateway'import'params msg)) where
+instance (Classes.ToStruct msg (RealmGateway'import'params internalRef externalRef internalOwner externalOwner msg)) where
     toStruct (RealmGateway'import'params'newtype_ struct) = struct
-instance (Untyped.HasMessage (RealmGateway'import'params msg)) where
-    type InMessage (RealmGateway'import'params msg) = msg
+instance (Untyped.HasMessage (RealmGateway'import'params internalRef externalRef internalOwner externalOwner msg)) where
+    type InMessage (RealmGateway'import'params internalRef externalRef internalOwner externalOwner msg) = msg
     message (RealmGateway'import'params'newtype_ struct) = (Untyped.message struct)
-instance (Untyped.MessageDefault (RealmGateway'import'params msg)) where
+instance (Untyped.MessageDefault (RealmGateway'import'params internalRef externalRef internalOwner externalOwner msg)) where
     messageDefault msg = (RealmGateway'import'params'newtype_ (Untyped.messageDefault msg))
-instance (Classes.FromPtr msg (RealmGateway'import'params msg)) where
+instance (Classes.FromPtr msg (RealmGateway'import'params internalRef externalRef internalOwner externalOwner msg)) where
     fromPtr msg ptr = (RealmGateway'import'params'newtype_ <$> (Classes.fromPtr msg ptr))
-instance (Classes.ToPtr s (RealmGateway'import'params (Message.MutMsg s))) where
+instance (Classes.ToPtr s (RealmGateway'import'params internalRef externalRef internalOwner externalOwner (Message.MutMsg s))) where
     toPtr msg (RealmGateway'import'params'newtype_ struct) = (Classes.toPtr msg struct)
-instance (Classes.Allocate s (RealmGateway'import'params (Message.MutMsg s))) where
+instance (Classes.Allocate s (RealmGateway'import'params internalRef externalRef internalOwner externalOwner (Message.MutMsg s))) where
     new msg = (RealmGateway'import'params'newtype_ <$> (Untyped.allocStruct msg 0 2))
-instance (Basics.ListElem msg (RealmGateway'import'params msg)) where
-    newtype List msg (RealmGateway'import'params msg)
+instance (Basics.ListElem msg (RealmGateway'import'params internalRef externalRef internalOwner externalOwner msg)) where
+    newtype List msg (RealmGateway'import'params internalRef externalRef internalOwner externalOwner msg)
         = RealmGateway'import'params'List_ (Untyped.ListOf msg (Untyped.Struct msg))
     listFromPtr msg ptr = (RealmGateway'import'params'List_ <$> (Classes.fromPtr msg ptr))
     toUntypedList (RealmGateway'import'params'List_ l) = (Untyped.ListStruct l)
@@ -153,60 +151,62 @@
         elt <- (Untyped.index i l)
         (Classes.fromStruct elt)
         )
-instance (Basics.MutListElem s (RealmGateway'import'params (Message.MutMsg s))) where
+instance (Basics.MutListElem s (RealmGateway'import'params internalRef externalRef internalOwner externalOwner (Message.MutMsg s))) where
     setIndex (RealmGateway'import'params'newtype_ elt) i (RealmGateway'import'params'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (RealmGateway'import'params'List_ <$> (Untyped.allocCompositeList msg 0 2 len))
-get_RealmGateway'import'params'cap :: ((Untyped.ReadCtx m msg)) => (RealmGateway'import'params msg) -> (m (Persistent msg))
+get_RealmGateway'import'params'cap :: ((Untyped.ReadCtx m msg)
+                                      ,(Classes.FromPtr msg (Persistent externalRef externalOwner msg))) => (RealmGateway'import'params internalRef externalRef internalOwner externalOwner msg) -> (m (Persistent externalRef externalOwner msg))
 get_RealmGateway'import'params'cap (RealmGateway'import'params'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_RealmGateway'import'params'cap :: ((Untyped.RWCtx m s)) => (RealmGateway'import'params (Message.MutMsg s)) -> (Persistent (Message.MutMsg s)) -> (m ())
+set_RealmGateway'import'params'cap :: ((Untyped.RWCtx m s)
+                                      ,(Classes.ToPtr s (Persistent externalRef externalOwner (Message.MutMsg s)))) => (RealmGateway'import'params internalRef externalRef internalOwner externalOwner (Message.MutMsg s)) -> (Persistent externalRef externalOwner (Message.MutMsg s)) -> (m ())
 set_RealmGateway'import'params'cap (RealmGateway'import'params'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
     )
-has_RealmGateway'import'params'cap :: ((Untyped.ReadCtx m msg)) => (RealmGateway'import'params msg) -> (m Std_.Bool)
+has_RealmGateway'import'params'cap :: ((Untyped.ReadCtx m msg)) => (RealmGateway'import'params internalRef externalRef internalOwner externalOwner msg) -> (m Std_.Bool)
 has_RealmGateway'import'params'cap (RealmGateway'import'params'newtype_ struct) = (Std_.isJust <$> (Untyped.getPtr 0 struct))
-get_RealmGateway'import'params'params :: ((Untyped.ReadCtx m msg)) => (RealmGateway'import'params msg) -> (m (Persistent'SaveParams msg))
+get_RealmGateway'import'params'params :: ((Untyped.ReadCtx m msg)
+                                         ,(Classes.FromPtr msg (Persistent'SaveParams internalRef internalOwner msg))) => (RealmGateway'import'params internalRef externalRef internalOwner externalOwner msg) -> (m (Persistent'SaveParams internalRef internalOwner msg))
 get_RealmGateway'import'params'params (RealmGateway'import'params'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 1 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_RealmGateway'import'params'params :: ((Untyped.RWCtx m s)) => (RealmGateway'import'params (Message.MutMsg s)) -> (Persistent'SaveParams (Message.MutMsg s)) -> (m ())
+set_RealmGateway'import'params'params :: ((Untyped.RWCtx m s)
+                                         ,(Classes.ToPtr s (Persistent'SaveParams internalRef internalOwner (Message.MutMsg s)))) => (RealmGateway'import'params internalRef externalRef internalOwner externalOwner (Message.MutMsg s)) -> (Persistent'SaveParams internalRef internalOwner (Message.MutMsg s)) -> (m ())
 set_RealmGateway'import'params'params (RealmGateway'import'params'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 1 struct)
     )
-has_RealmGateway'import'params'params :: ((Untyped.ReadCtx m msg)) => (RealmGateway'import'params msg) -> (m Std_.Bool)
+has_RealmGateway'import'params'params :: ((Untyped.ReadCtx m msg)) => (RealmGateway'import'params internalRef externalRef internalOwner externalOwner msg) -> (m Std_.Bool)
 has_RealmGateway'import'params'params (RealmGateway'import'params'newtype_ struct) = (Std_.isJust <$> (Untyped.getPtr 1 struct))
-new_RealmGateway'import'params'params :: ((Untyped.RWCtx m s)) => (RealmGateway'import'params (Message.MutMsg s)) -> (m (Persistent'SaveParams (Message.MutMsg s)))
+new_RealmGateway'import'params'params :: ((Untyped.RWCtx m s)) => (RealmGateway'import'params internalRef externalRef internalOwner externalOwner (Message.MutMsg s)) -> (m (Persistent'SaveParams internalRef internalOwner (Message.MutMsg s)))
 new_RealmGateway'import'params'params struct = (do
     result <- (Classes.new (Untyped.message struct))
     (set_RealmGateway'import'params'params struct result)
     (Std_.pure result)
     )
-newtype RealmGateway'export'params msg
+newtype RealmGateway'export'params internalRef externalRef internalOwner externalOwner msg
     = RealmGateway'export'params'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg RealmGateway'export'params) where
-    tMsg f (RealmGateway'export'params'newtype_ s) = (RealmGateway'export'params'newtype_ <$> (Untyped.tMsg f s))
-instance (Classes.FromStruct msg (RealmGateway'export'params msg)) where
+instance (Classes.FromStruct msg (RealmGateway'export'params internalRef externalRef internalOwner externalOwner msg)) where
     fromStruct struct = (Std_.pure (RealmGateway'export'params'newtype_ struct))
-instance (Classes.ToStruct msg (RealmGateway'export'params msg)) where
+instance (Classes.ToStruct msg (RealmGateway'export'params internalRef externalRef internalOwner externalOwner msg)) where
     toStruct (RealmGateway'export'params'newtype_ struct) = struct
-instance (Untyped.HasMessage (RealmGateway'export'params msg)) where
-    type InMessage (RealmGateway'export'params msg) = msg
+instance (Untyped.HasMessage (RealmGateway'export'params internalRef externalRef internalOwner externalOwner msg)) where
+    type InMessage (RealmGateway'export'params internalRef externalRef internalOwner externalOwner msg) = msg
     message (RealmGateway'export'params'newtype_ struct) = (Untyped.message struct)
-instance (Untyped.MessageDefault (RealmGateway'export'params msg)) where
+instance (Untyped.MessageDefault (RealmGateway'export'params internalRef externalRef internalOwner externalOwner msg)) where
     messageDefault msg = (RealmGateway'export'params'newtype_ (Untyped.messageDefault msg))
-instance (Classes.FromPtr msg (RealmGateway'export'params msg)) where
+instance (Classes.FromPtr msg (RealmGateway'export'params internalRef externalRef internalOwner externalOwner msg)) where
     fromPtr msg ptr = (RealmGateway'export'params'newtype_ <$> (Classes.fromPtr msg ptr))
-instance (Classes.ToPtr s (RealmGateway'export'params (Message.MutMsg s))) where
+instance (Classes.ToPtr s (RealmGateway'export'params internalRef externalRef internalOwner externalOwner (Message.MutMsg s))) where
     toPtr msg (RealmGateway'export'params'newtype_ struct) = (Classes.toPtr msg struct)
-instance (Classes.Allocate s (RealmGateway'export'params (Message.MutMsg s))) where
+instance (Classes.Allocate s (RealmGateway'export'params internalRef externalRef internalOwner externalOwner (Message.MutMsg s))) where
     new msg = (RealmGateway'export'params'newtype_ <$> (Untyped.allocStruct msg 0 2))
-instance (Basics.ListElem msg (RealmGateway'export'params msg)) where
-    newtype List msg (RealmGateway'export'params msg)
+instance (Basics.ListElem msg (RealmGateway'export'params internalRef externalRef internalOwner externalOwner msg)) where
+    newtype List msg (RealmGateway'export'params internalRef externalRef internalOwner externalOwner msg)
         = RealmGateway'export'params'List_ (Untyped.ListOf msg (Untyped.Struct msg))
     listFromPtr msg ptr = (RealmGateway'export'params'List_ <$> (Classes.fromPtr msg ptr))
     toUntypedList (RealmGateway'export'params'List_ l) = (Untyped.ListStruct l)
@@ -215,34 +215,38 @@
         elt <- (Untyped.index i l)
         (Classes.fromStruct elt)
         )
-instance (Basics.MutListElem s (RealmGateway'export'params (Message.MutMsg s))) where
+instance (Basics.MutListElem s (RealmGateway'export'params internalRef externalRef internalOwner externalOwner (Message.MutMsg s))) where
     setIndex (RealmGateway'export'params'newtype_ elt) i (RealmGateway'export'params'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (RealmGateway'export'params'List_ <$> (Untyped.allocCompositeList msg 0 2 len))
-get_RealmGateway'export'params'cap :: ((Untyped.ReadCtx m msg)) => (RealmGateway'export'params msg) -> (m (Persistent msg))
+get_RealmGateway'export'params'cap :: ((Untyped.ReadCtx m msg)
+                                      ,(Classes.FromPtr msg (Persistent internalRef internalOwner msg))) => (RealmGateway'export'params internalRef externalRef internalOwner externalOwner msg) -> (m (Persistent internalRef internalOwner msg))
 get_RealmGateway'export'params'cap (RealmGateway'export'params'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_RealmGateway'export'params'cap :: ((Untyped.RWCtx m s)) => (RealmGateway'export'params (Message.MutMsg s)) -> (Persistent (Message.MutMsg s)) -> (m ())
+set_RealmGateway'export'params'cap :: ((Untyped.RWCtx m s)
+                                      ,(Classes.ToPtr s (Persistent internalRef internalOwner (Message.MutMsg s)))) => (RealmGateway'export'params internalRef externalRef internalOwner externalOwner (Message.MutMsg s)) -> (Persistent internalRef internalOwner (Message.MutMsg s)) -> (m ())
 set_RealmGateway'export'params'cap (RealmGateway'export'params'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
     )
-has_RealmGateway'export'params'cap :: ((Untyped.ReadCtx m msg)) => (RealmGateway'export'params msg) -> (m Std_.Bool)
+has_RealmGateway'export'params'cap :: ((Untyped.ReadCtx m msg)) => (RealmGateway'export'params internalRef externalRef internalOwner externalOwner msg) -> (m Std_.Bool)
 has_RealmGateway'export'params'cap (RealmGateway'export'params'newtype_ struct) = (Std_.isJust <$> (Untyped.getPtr 0 struct))
-get_RealmGateway'export'params'params :: ((Untyped.ReadCtx m msg)) => (RealmGateway'export'params msg) -> (m (Persistent'SaveParams msg))
+get_RealmGateway'export'params'params :: ((Untyped.ReadCtx m msg)
+                                         ,(Classes.FromPtr msg (Persistent'SaveParams externalRef externalOwner msg))) => (RealmGateway'export'params internalRef externalRef internalOwner externalOwner msg) -> (m (Persistent'SaveParams externalRef externalOwner msg))
 get_RealmGateway'export'params'params (RealmGateway'export'params'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 1 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_RealmGateway'export'params'params :: ((Untyped.RWCtx m s)) => (RealmGateway'export'params (Message.MutMsg s)) -> (Persistent'SaveParams (Message.MutMsg s)) -> (m ())
+set_RealmGateway'export'params'params :: ((Untyped.RWCtx m s)
+                                         ,(Classes.ToPtr s (Persistent'SaveParams externalRef externalOwner (Message.MutMsg s)))) => (RealmGateway'export'params internalRef externalRef internalOwner externalOwner (Message.MutMsg s)) -> (Persistent'SaveParams externalRef externalOwner (Message.MutMsg s)) -> (m ())
 set_RealmGateway'export'params'params (RealmGateway'export'params'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 1 struct)
     )
-has_RealmGateway'export'params'params :: ((Untyped.ReadCtx m msg)) => (RealmGateway'export'params msg) -> (m Std_.Bool)
+has_RealmGateway'export'params'params :: ((Untyped.ReadCtx m msg)) => (RealmGateway'export'params internalRef externalRef internalOwner externalOwner msg) -> (m Std_.Bool)
 has_RealmGateway'export'params'params (RealmGateway'export'params'newtype_ struct) = (Std_.isJust <$> (Untyped.getPtr 1 struct))
-new_RealmGateway'export'params'params :: ((Untyped.RWCtx m s)) => (RealmGateway'export'params (Message.MutMsg s)) -> (m (Persistent'SaveParams (Message.MutMsg s)))
+new_RealmGateway'export'params'params :: ((Untyped.RWCtx m s)) => (RealmGateway'export'params internalRef externalRef internalOwner externalOwner (Message.MutMsg s)) -> (m (Persistent'SaveParams externalRef externalOwner (Message.MutMsg s)))
 new_RealmGateway'export'params'params struct = (do
     result <- (Classes.new (Untyped.message struct))
     (set_RealmGateway'export'params'params struct result)
diff --git a/gen/lib/Capnp/Gen/Capnp/Persistent/Pure.hs b/gen/lib/Capnp/Gen/Capnp/Persistent/Pure.hs
--- a/gen/lib/Capnp/Gen/Capnp/Persistent/Pure.hs
+++ b/gen/lib/Capnp/Gen/Capnp/Persistent/Pure.hs
@@ -2,9 +2,11 @@
 {-# LANGUAGE DuplicateRecordFields #-}
 {-# LANGUAGE FlexibleContexts #-}
 {-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE FunctionalDependencies #-}
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE UndecidableInstances #-}
 {-# OPTIONS_GHC -Wno-unused-imports #-}
 {-# OPTIONS_GHC -Wno-dodgy-exports #-}
 {-# OPTIONS_GHC -Wno-unused-matches #-}
@@ -42,18 +44,18 @@
 import qualified Data.Word as Std_
 import qualified Data.Int as Std_
 import Prelude ((<$>), (<*>), (>>=))
-newtype Persistent 
+newtype Persistent sturdyRef owner
     = Persistent Message.Client
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
 class ((MonadIO.MonadIO m)
-      ,(Server.Server m cap)) => (Persistent'server_ m cap) where
+      ,(Server.Server m cap)) => (Persistent'server_ m cap sturdyRef owner) | cap -> sturdyRef, cap -> owner where
     {-# MINIMAL persistent'save #-}
-    persistent'save :: cap -> (Server.MethodHandler m Persistent'SaveParams Persistent'SaveResults)
+    persistent'save :: cap -> (Server.MethodHandler m (Persistent'SaveParams sturdyRef owner) (Persistent'SaveResults sturdyRef owner))
     persistent'save _ = Server.methodUnimplemented
-export_Persistent :: ((Persistent'server_ Std_.IO a)
-                     ,(STM.MonadSTM m)) => Supervisors.Supervisor -> a -> (m Persistent)
+export_Persistent :: ((STM.MonadSTM m)
+                     ,(Persistent'server_ Std_.IO cap sturdyRef owner)) => Supervisors.Supervisor -> cap -> (m (Persistent sturdyRef owner))
 export_Persistent sup_ server_ = (STM.liftSTM (Persistent <$> (Rpc.export sup_ Server.ServerOps{handleCast = (Server.unwrap server_)
                                                                                                ,handleStop = (Server.shutdown server_)
                                                                                                ,handleCall = (\interfaceId_ methodId_ -> case interfaceId_ of
@@ -65,109 +67,253 @@
                                                                                                                Server.methodUnimplemented
                                                                                                    _ ->
                                                                                                        Server.methodUnimplemented)})))
-instance (Rpc.IsClient Persistent) where
+instance (Rpc.IsClient (Persistent sturdyRef owner)) where
     fromClient  = Persistent
     toClient (Persistent client) = client
-instance (Classes.FromPtr msg Persistent) where
+instance (Classes.FromPtr msg (Persistent sturdyRef owner)) where
     fromPtr  = RpcHelpers.isClientFromPtr
-instance (Classes.ToPtr s Persistent) where
+instance (Classes.ToPtr s (Persistent sturdyRef owner)) where
     toPtr  = RpcHelpers.isClientToPtr
-instance (Classes.Decerialize Persistent) where
-    type Cerial msg Persistent = (Capnp.Gen.ById.Xb8630836983feed7.Persistent msg)
+instance (Classes.Decerialize (Persistent sturdyRef owner)) where
+    type Cerial msg (Persistent sturdyRef owner) = (Capnp.Gen.ById.Xb8630836983feed7.Persistent (Classes.Cerial msg sturdyRef) (Classes.Cerial msg owner) msg)
     decerialize (Capnp.Gen.ById.Xb8630836983feed7.Persistent'newtype_ maybeCap) = case maybeCap of
         (Std_.Nothing) ->
             (Std_.pure (Persistent Message.nullClient))
         (Std_.Just cap) ->
             (Persistent <$> (Untyped.getClient cap))
-instance (Classes.Cerialize Persistent) where
+instance (Classes.Cerialize s (Persistent sturdyRef owner)) where
     cerialize msg (Persistent client) = (Capnp.Gen.ById.Xb8630836983feed7.Persistent'newtype_ <$> (Std_.Just <$> (Untyped.appendCap msg client)))
-instance (Server.Server Std_.IO Persistent)
-instance (Persistent'server_ Std_.IO Persistent) where
+instance (Server.Server Std_.IO (Persistent sturdyRef owner))
+instance (Persistent'server_ Std_.IO (Persistent sturdyRef owner) sturdyRef owner) where
     persistent'save (Persistent client) = (Rpc.clientMethodHandler 14468694717054801553 0 client)
-data Persistent'SaveParams 
+data Persistent'SaveParams sturdyRef owner
     = Persistent'SaveParams 
-        {sealFor :: (Std_.Maybe UntypedPure.Ptr)}
+        {sealFor :: owner}
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Persistent'SaveParams) where
+instance ((Classes.Decerialize sturdyRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg sturdyRef))
+         ,(Classes.Decerialize owner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg owner))) => (Default.Default (Persistent'SaveParams sturdyRef owner)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Persistent'SaveParams) where
+instance ((Classes.Decerialize sturdyRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg sturdyRef))
+         ,(Classes.Decerialize owner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg owner))) => (Classes.FromStruct Message.ConstMsg (Persistent'SaveParams sturdyRef owner)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Persistent'SaveParams) where
-    type Cerial msg Persistent'SaveParams = (Capnp.Gen.ById.Xb8630836983feed7.Persistent'SaveParams msg)
+instance ((Classes.Decerialize sturdyRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg sturdyRef))
+         ,(Classes.Decerialize owner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg owner))) => (Classes.Decerialize (Persistent'SaveParams sturdyRef owner)) where
+    type Cerial msg (Persistent'SaveParams sturdyRef owner) = (Capnp.Gen.ById.Xb8630836983feed7.Persistent'SaveParams (Classes.Cerial msg sturdyRef) (Classes.Cerial msg owner) msg)
     decerialize raw = (Persistent'SaveParams <$> ((Capnp.Gen.ById.Xb8630836983feed7.get_Persistent'SaveParams'sealFor raw) >>= Classes.decerialize))
-instance (Classes.Marshal Persistent'SaveParams) where
+instance ((Classes.Decerialize sturdyRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg sturdyRef))
+         ,(Classes.Decerialize owner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg owner))
+         ,(Classes.Cerialize s sturdyRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) sturdyRef))
+         ,(Classes.Cerialize s owner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) owner))) => (Classes.Marshal s (Persistent'SaveParams sturdyRef owner)) where
     marshalInto raw_ value_ = case value_ of
         Persistent'SaveParams{..} ->
             (do
                 ((Classes.cerialize (Untyped.message raw_) sealFor) >>= (Capnp.Gen.ById.Xb8630836983feed7.set_Persistent'SaveParams'sealFor raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Persistent'SaveParams)
-instance (Classes.Cerialize (V.Vector Persistent'SaveParams)) where
+instance ((Classes.Decerialize sturdyRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg sturdyRef))
+         ,(Classes.Decerialize owner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg owner))
+         ,(Classes.Cerialize s sturdyRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) sturdyRef))
+         ,(Classes.Cerialize s owner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) owner))) => (Classes.Cerialize s (Persistent'SaveParams sturdyRef owner))
+instance ((Classes.Decerialize sturdyRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg sturdyRef))
+         ,(Classes.Decerialize owner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg owner))
+         ,(Classes.Cerialize s sturdyRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) sturdyRef))
+         ,(Classes.Cerialize s owner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) owner))) => (Classes.Cerialize s (V.Vector (Persistent'SaveParams sturdyRef owner))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Persistent'SaveParams))) where
+instance ((Classes.Decerialize sturdyRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg sturdyRef))
+         ,(Classes.Decerialize owner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg owner))
+         ,(Classes.Cerialize s sturdyRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) sturdyRef))
+         ,(Classes.Cerialize s owner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) owner))) => (Classes.Cerialize s (V.Vector (V.Vector (Persistent'SaveParams sturdyRef owner)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Persistent'SaveParams)))) where
+instance ((Classes.Decerialize sturdyRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg sturdyRef))
+         ,(Classes.Decerialize owner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg owner))
+         ,(Classes.Cerialize s sturdyRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) sturdyRef))
+         ,(Classes.Cerialize s owner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) owner))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Persistent'SaveParams sturdyRef owner))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Persistent'SaveParams))))) where
+instance ((Classes.Decerialize sturdyRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg sturdyRef))
+         ,(Classes.Decerialize owner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg owner))
+         ,(Classes.Cerialize s sturdyRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) sturdyRef))
+         ,(Classes.Cerialize s owner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) owner))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Persistent'SaveParams sturdyRef owner)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Persistent'SaveParams)))))) where
+instance ((Classes.Decerialize sturdyRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg sturdyRef))
+         ,(Classes.Decerialize owner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg owner))
+         ,(Classes.Cerialize s sturdyRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) sturdyRef))
+         ,(Classes.Cerialize s owner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) owner))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Persistent'SaveParams sturdyRef owner))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Persistent'SaveParams))))))) where
+instance ((Classes.Decerialize sturdyRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg sturdyRef))
+         ,(Classes.Decerialize owner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg owner))
+         ,(Classes.Cerialize s sturdyRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) sturdyRef))
+         ,(Classes.Cerialize s owner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) owner))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Persistent'SaveParams sturdyRef owner)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Persistent'SaveParams)))))))) where
+instance ((Classes.Decerialize sturdyRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg sturdyRef))
+         ,(Classes.Decerialize owner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg owner))
+         ,(Classes.Cerialize s sturdyRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) sturdyRef))
+         ,(Classes.Cerialize s owner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) owner))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Persistent'SaveParams sturdyRef owner))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-data Persistent'SaveResults 
+data Persistent'SaveResults sturdyRef owner
     = Persistent'SaveResults 
-        {sturdyRef :: (Std_.Maybe UntypedPure.Ptr)}
+        {sturdyRef :: sturdyRef}
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Persistent'SaveResults) where
+instance ((Classes.Decerialize sturdyRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg sturdyRef))
+         ,(Classes.Decerialize owner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg owner))) => (Default.Default (Persistent'SaveResults sturdyRef owner)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Persistent'SaveResults) where
+instance ((Classes.Decerialize sturdyRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg sturdyRef))
+         ,(Classes.Decerialize owner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg owner))) => (Classes.FromStruct Message.ConstMsg (Persistent'SaveResults sturdyRef owner)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Persistent'SaveResults) where
-    type Cerial msg Persistent'SaveResults = (Capnp.Gen.ById.Xb8630836983feed7.Persistent'SaveResults msg)
+instance ((Classes.Decerialize sturdyRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg sturdyRef))
+         ,(Classes.Decerialize owner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg owner))) => (Classes.Decerialize (Persistent'SaveResults sturdyRef owner)) where
+    type Cerial msg (Persistent'SaveResults sturdyRef owner) = (Capnp.Gen.ById.Xb8630836983feed7.Persistent'SaveResults (Classes.Cerial msg sturdyRef) (Classes.Cerial msg owner) msg)
     decerialize raw = (Persistent'SaveResults <$> ((Capnp.Gen.ById.Xb8630836983feed7.get_Persistent'SaveResults'sturdyRef raw) >>= Classes.decerialize))
-instance (Classes.Marshal Persistent'SaveResults) where
+instance ((Classes.Decerialize sturdyRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg sturdyRef))
+         ,(Classes.Decerialize owner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg owner))
+         ,(Classes.Cerialize s sturdyRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) sturdyRef))
+         ,(Classes.Cerialize s owner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) owner))) => (Classes.Marshal s (Persistent'SaveResults sturdyRef owner)) where
     marshalInto raw_ value_ = case value_ of
         Persistent'SaveResults{..} ->
             (do
                 ((Classes.cerialize (Untyped.message raw_) sturdyRef) >>= (Capnp.Gen.ById.Xb8630836983feed7.set_Persistent'SaveResults'sturdyRef raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Persistent'SaveResults)
-instance (Classes.Cerialize (V.Vector Persistent'SaveResults)) where
+instance ((Classes.Decerialize sturdyRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg sturdyRef))
+         ,(Classes.Decerialize owner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg owner))
+         ,(Classes.Cerialize s sturdyRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) sturdyRef))
+         ,(Classes.Cerialize s owner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) owner))) => (Classes.Cerialize s (Persistent'SaveResults sturdyRef owner))
+instance ((Classes.Decerialize sturdyRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg sturdyRef))
+         ,(Classes.Decerialize owner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg owner))
+         ,(Classes.Cerialize s sturdyRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) sturdyRef))
+         ,(Classes.Cerialize s owner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) owner))) => (Classes.Cerialize s (V.Vector (Persistent'SaveResults sturdyRef owner))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Persistent'SaveResults))) where
+instance ((Classes.Decerialize sturdyRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg sturdyRef))
+         ,(Classes.Decerialize owner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg owner))
+         ,(Classes.Cerialize s sturdyRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) sturdyRef))
+         ,(Classes.Cerialize s owner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) owner))) => (Classes.Cerialize s (V.Vector (V.Vector (Persistent'SaveResults sturdyRef owner)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Persistent'SaveResults)))) where
+instance ((Classes.Decerialize sturdyRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg sturdyRef))
+         ,(Classes.Decerialize owner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg owner))
+         ,(Classes.Cerialize s sturdyRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) sturdyRef))
+         ,(Classes.Cerialize s owner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) owner))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Persistent'SaveResults sturdyRef owner))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Persistent'SaveResults))))) where
+instance ((Classes.Decerialize sturdyRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg sturdyRef))
+         ,(Classes.Decerialize owner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg owner))
+         ,(Classes.Cerialize s sturdyRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) sturdyRef))
+         ,(Classes.Cerialize s owner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) owner))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Persistent'SaveResults sturdyRef owner)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Persistent'SaveResults)))))) where
+instance ((Classes.Decerialize sturdyRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg sturdyRef))
+         ,(Classes.Decerialize owner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg owner))
+         ,(Classes.Cerialize s sturdyRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) sturdyRef))
+         ,(Classes.Cerialize s owner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) owner))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Persistent'SaveResults sturdyRef owner))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Persistent'SaveResults))))))) where
+instance ((Classes.Decerialize sturdyRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg sturdyRef))
+         ,(Classes.Decerialize owner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg owner))
+         ,(Classes.Cerialize s sturdyRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) sturdyRef))
+         ,(Classes.Cerialize s owner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) owner))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Persistent'SaveResults sturdyRef owner)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Persistent'SaveResults)))))))) where
+instance ((Classes.Decerialize sturdyRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg sturdyRef))
+         ,(Classes.Decerialize owner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg owner))
+         ,(Classes.Cerialize s sturdyRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) sturdyRef))
+         ,(Classes.Cerialize s owner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) owner))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Persistent'SaveResults sturdyRef owner))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-newtype RealmGateway 
+newtype RealmGateway internalRef externalRef internalOwner externalOwner
     = RealmGateway Message.Client
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
 class ((MonadIO.MonadIO m)
-      ,(Server.Server m cap)) => (RealmGateway'server_ m cap) where
+      ,(Server.Server m cap)) => (RealmGateway'server_ m cap internalRef externalRef internalOwner externalOwner) | cap -> internalRef, cap -> externalRef, cap -> internalOwner, cap -> externalOwner where
     {-# MINIMAL realmGateway'import_,realmGateway'export #-}
-    realmGateway'import_ :: cap -> (Server.MethodHandler m RealmGateway'import'params Persistent'SaveResults)
+    realmGateway'import_ :: cap -> (Server.MethodHandler m (RealmGateway'import'params internalRef externalRef internalOwner externalOwner) (Persistent'SaveResults internalRef internalOwner))
     realmGateway'import_ _ = Server.methodUnimplemented
-    realmGateway'export :: cap -> (Server.MethodHandler m RealmGateway'export'params Persistent'SaveResults)
+    realmGateway'export :: cap -> (Server.MethodHandler m (RealmGateway'export'params internalRef externalRef internalOwner externalOwner) (Persistent'SaveResults externalRef externalOwner))
     realmGateway'export _ = Server.methodUnimplemented
-export_RealmGateway :: ((RealmGateway'server_ Std_.IO a)
-                       ,(STM.MonadSTM m)) => Supervisors.Supervisor -> a -> (m RealmGateway)
+export_RealmGateway :: ((STM.MonadSTM m)
+                       ,(RealmGateway'server_ Std_.IO cap internalRef externalRef internalOwner externalOwner)) => Supervisors.Supervisor -> cap -> (m (RealmGateway internalRef externalRef internalOwner externalOwner))
 export_RealmGateway sup_ server_ = (STM.liftSTM (RealmGateway <$> (Rpc.export sup_ Server.ServerOps{handleCast = (Server.unwrap server_)
                                                                                                    ,handleStop = (Server.shutdown server_)
                                                                                                    ,handleCall = (\interfaceId_ methodId_ -> case interfaceId_ of
@@ -181,42 +327,78 @@
                                                                                                                    Server.methodUnimplemented
                                                                                                        _ ->
                                                                                                            Server.methodUnimplemented)})))
-instance (Rpc.IsClient RealmGateway) where
+instance (Rpc.IsClient (RealmGateway internalRef externalRef internalOwner externalOwner)) where
     fromClient  = RealmGateway
     toClient (RealmGateway client) = client
-instance (Classes.FromPtr msg RealmGateway) where
+instance (Classes.FromPtr msg (RealmGateway internalRef externalRef internalOwner externalOwner)) where
     fromPtr  = RpcHelpers.isClientFromPtr
-instance (Classes.ToPtr s RealmGateway) where
+instance (Classes.ToPtr s (RealmGateway internalRef externalRef internalOwner externalOwner)) where
     toPtr  = RpcHelpers.isClientToPtr
-instance (Classes.Decerialize RealmGateway) where
-    type Cerial msg RealmGateway = (Capnp.Gen.ById.Xb8630836983feed7.RealmGateway msg)
+instance (Classes.Decerialize (RealmGateway internalRef externalRef internalOwner externalOwner)) where
+    type Cerial msg (RealmGateway internalRef externalRef internalOwner externalOwner) = (Capnp.Gen.ById.Xb8630836983feed7.RealmGateway (Classes.Cerial msg internalRef) (Classes.Cerial msg externalRef) (Classes.Cerial msg internalOwner) (Classes.Cerial msg externalOwner) msg)
     decerialize (Capnp.Gen.ById.Xb8630836983feed7.RealmGateway'newtype_ maybeCap) = case maybeCap of
         (Std_.Nothing) ->
             (Std_.pure (RealmGateway Message.nullClient))
         (Std_.Just cap) ->
             (RealmGateway <$> (Untyped.getClient cap))
-instance (Classes.Cerialize RealmGateway) where
+instance (Classes.Cerialize s (RealmGateway internalRef externalRef internalOwner externalOwner)) where
     cerialize msg (RealmGateway client) = (Capnp.Gen.ById.Xb8630836983feed7.RealmGateway'newtype_ <$> (Std_.Just <$> (Untyped.appendCap msg client)))
-instance (Server.Server Std_.IO RealmGateway)
-instance (RealmGateway'server_ Std_.IO RealmGateway) where
+instance (Server.Server Std_.IO (RealmGateway internalRef externalRef internalOwner externalOwner))
+instance (RealmGateway'server_ Std_.IO (RealmGateway internalRef externalRef internalOwner externalOwner) internalRef externalRef internalOwner externalOwner) where
     realmGateway'import_ (RealmGateway client) = (Rpc.clientMethodHandler 9583422979879616212 0 client)
     realmGateway'export (RealmGateway client) = (Rpc.clientMethodHandler 9583422979879616212 1 client)
-data RealmGateway'import'params 
+data RealmGateway'import'params internalRef externalRef internalOwner externalOwner
     = RealmGateway'import'params 
-        {cap :: Persistent
-        ,params :: Persistent'SaveParams}
+        {cap :: (Persistent externalRef externalOwner)
+        ,params :: (Persistent'SaveParams internalRef internalOwner)}
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default RealmGateway'import'params) where
+instance ((Classes.Decerialize internalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalRef))
+         ,(Classes.Decerialize externalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalRef))
+         ,(Classes.Decerialize internalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalOwner))
+         ,(Classes.Decerialize externalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalOwner))) => (Default.Default (RealmGateway'import'params internalRef externalRef internalOwner externalOwner)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg RealmGateway'import'params) where
+instance ((Classes.Decerialize internalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalRef))
+         ,(Classes.Decerialize externalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalRef))
+         ,(Classes.Decerialize internalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalOwner))
+         ,(Classes.Decerialize externalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalOwner))) => (Classes.FromStruct Message.ConstMsg (RealmGateway'import'params internalRef externalRef internalOwner externalOwner)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize RealmGateway'import'params) where
-    type Cerial msg RealmGateway'import'params = (Capnp.Gen.ById.Xb8630836983feed7.RealmGateway'import'params msg)
+instance ((Classes.Decerialize internalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalRef))
+         ,(Classes.Decerialize externalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalRef))
+         ,(Classes.Decerialize internalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalOwner))
+         ,(Classes.Decerialize externalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalOwner))) => (Classes.Decerialize (RealmGateway'import'params internalRef externalRef internalOwner externalOwner)) where
+    type Cerial msg (RealmGateway'import'params internalRef externalRef internalOwner externalOwner) = (Capnp.Gen.ById.Xb8630836983feed7.RealmGateway'import'params (Classes.Cerial msg internalRef) (Classes.Cerial msg externalRef) (Classes.Cerial msg internalOwner) (Classes.Cerial msg externalOwner) msg)
     decerialize raw = (RealmGateway'import'params <$> ((Capnp.Gen.ById.Xb8630836983feed7.get_RealmGateway'import'params'cap raw) >>= Classes.decerialize)
                                                   <*> ((Capnp.Gen.ById.Xb8630836983feed7.get_RealmGateway'import'params'params raw) >>= Classes.decerialize))
-instance (Classes.Marshal RealmGateway'import'params) where
+instance ((Classes.Decerialize internalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalRef))
+         ,(Classes.Decerialize externalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalRef))
+         ,(Classes.Decerialize internalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalOwner))
+         ,(Classes.Decerialize externalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalOwner))
+         ,(Classes.Cerialize s internalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalRef))
+         ,(Classes.Cerialize s externalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalRef))
+         ,(Classes.Cerialize s internalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalOwner))
+         ,(Classes.Cerialize s externalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalOwner))) => (Classes.Marshal s (RealmGateway'import'params internalRef externalRef internalOwner externalOwner)) where
     marshalInto raw_ value_ = case value_ of
         RealmGateway'import'params{..} ->
             (do
@@ -224,37 +406,193 @@
                 ((Classes.cerialize (Untyped.message raw_) params) >>= (Capnp.Gen.ById.Xb8630836983feed7.set_RealmGateway'import'params'params raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize RealmGateway'import'params)
-instance (Classes.Cerialize (V.Vector RealmGateway'import'params)) where
+instance ((Classes.Decerialize internalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalRef))
+         ,(Classes.Decerialize externalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalRef))
+         ,(Classes.Decerialize internalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalOwner))
+         ,(Classes.Decerialize externalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalOwner))
+         ,(Classes.Cerialize s internalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalRef))
+         ,(Classes.Cerialize s externalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalRef))
+         ,(Classes.Cerialize s internalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalOwner))
+         ,(Classes.Cerialize s externalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalOwner))) => (Classes.Cerialize s (RealmGateway'import'params internalRef externalRef internalOwner externalOwner))
+instance ((Classes.Decerialize internalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalRef))
+         ,(Classes.Decerialize externalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalRef))
+         ,(Classes.Decerialize internalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalOwner))
+         ,(Classes.Decerialize externalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalOwner))
+         ,(Classes.Cerialize s internalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalRef))
+         ,(Classes.Cerialize s externalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalRef))
+         ,(Classes.Cerialize s internalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalOwner))
+         ,(Classes.Cerialize s externalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalOwner))) => (Classes.Cerialize s (V.Vector (RealmGateway'import'params internalRef externalRef internalOwner externalOwner))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector RealmGateway'import'params))) where
+instance ((Classes.Decerialize internalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalRef))
+         ,(Classes.Decerialize externalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalRef))
+         ,(Classes.Decerialize internalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalOwner))
+         ,(Classes.Decerialize externalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalOwner))
+         ,(Classes.Cerialize s internalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalRef))
+         ,(Classes.Cerialize s externalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalRef))
+         ,(Classes.Cerialize s internalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalOwner))
+         ,(Classes.Cerialize s externalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalOwner))) => (Classes.Cerialize s (V.Vector (V.Vector (RealmGateway'import'params internalRef externalRef internalOwner externalOwner)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector RealmGateway'import'params)))) where
+instance ((Classes.Decerialize internalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalRef))
+         ,(Classes.Decerialize externalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalRef))
+         ,(Classes.Decerialize internalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalOwner))
+         ,(Classes.Decerialize externalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalOwner))
+         ,(Classes.Cerialize s internalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalRef))
+         ,(Classes.Cerialize s externalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalRef))
+         ,(Classes.Cerialize s internalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalOwner))
+         ,(Classes.Cerialize s externalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalOwner))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (RealmGateway'import'params internalRef externalRef internalOwner externalOwner))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector RealmGateway'import'params))))) where
+instance ((Classes.Decerialize internalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalRef))
+         ,(Classes.Decerialize externalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalRef))
+         ,(Classes.Decerialize internalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalOwner))
+         ,(Classes.Decerialize externalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalOwner))
+         ,(Classes.Cerialize s internalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalRef))
+         ,(Classes.Cerialize s externalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalRef))
+         ,(Classes.Cerialize s internalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalOwner))
+         ,(Classes.Cerialize s externalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalOwner))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (RealmGateway'import'params internalRef externalRef internalOwner externalOwner)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector RealmGateway'import'params)))))) where
+instance ((Classes.Decerialize internalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalRef))
+         ,(Classes.Decerialize externalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalRef))
+         ,(Classes.Decerialize internalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalOwner))
+         ,(Classes.Decerialize externalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalOwner))
+         ,(Classes.Cerialize s internalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalRef))
+         ,(Classes.Cerialize s externalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalRef))
+         ,(Classes.Cerialize s internalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalOwner))
+         ,(Classes.Cerialize s externalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalOwner))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (RealmGateway'import'params internalRef externalRef internalOwner externalOwner))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector RealmGateway'import'params))))))) where
+instance ((Classes.Decerialize internalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalRef))
+         ,(Classes.Decerialize externalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalRef))
+         ,(Classes.Decerialize internalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalOwner))
+         ,(Classes.Decerialize externalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalOwner))
+         ,(Classes.Cerialize s internalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalRef))
+         ,(Classes.Cerialize s externalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalRef))
+         ,(Classes.Cerialize s internalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalOwner))
+         ,(Classes.Cerialize s externalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalOwner))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (RealmGateway'import'params internalRef externalRef internalOwner externalOwner)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector RealmGateway'import'params)))))))) where
+instance ((Classes.Decerialize internalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalRef))
+         ,(Classes.Decerialize externalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalRef))
+         ,(Classes.Decerialize internalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalOwner))
+         ,(Classes.Decerialize externalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalOwner))
+         ,(Classes.Cerialize s internalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalRef))
+         ,(Classes.Cerialize s externalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalRef))
+         ,(Classes.Cerialize s internalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalOwner))
+         ,(Classes.Cerialize s externalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalOwner))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (RealmGateway'import'params internalRef externalRef internalOwner externalOwner))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-data RealmGateway'export'params 
+data RealmGateway'export'params internalRef externalRef internalOwner externalOwner
     = RealmGateway'export'params 
-        {cap :: Persistent
-        ,params :: Persistent'SaveParams}
+        {cap :: (Persistent internalRef internalOwner)
+        ,params :: (Persistent'SaveParams externalRef externalOwner)}
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default RealmGateway'export'params) where
+instance ((Classes.Decerialize internalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalRef))
+         ,(Classes.Decerialize externalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalRef))
+         ,(Classes.Decerialize internalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalOwner))
+         ,(Classes.Decerialize externalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalOwner))) => (Default.Default (RealmGateway'export'params internalRef externalRef internalOwner externalOwner)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg RealmGateway'export'params) where
+instance ((Classes.Decerialize internalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalRef))
+         ,(Classes.Decerialize externalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalRef))
+         ,(Classes.Decerialize internalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalOwner))
+         ,(Classes.Decerialize externalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalOwner))) => (Classes.FromStruct Message.ConstMsg (RealmGateway'export'params internalRef externalRef internalOwner externalOwner)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize RealmGateway'export'params) where
-    type Cerial msg RealmGateway'export'params = (Capnp.Gen.ById.Xb8630836983feed7.RealmGateway'export'params msg)
+instance ((Classes.Decerialize internalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalRef))
+         ,(Classes.Decerialize externalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalRef))
+         ,(Classes.Decerialize internalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalOwner))
+         ,(Classes.Decerialize externalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalOwner))) => (Classes.Decerialize (RealmGateway'export'params internalRef externalRef internalOwner externalOwner)) where
+    type Cerial msg (RealmGateway'export'params internalRef externalRef internalOwner externalOwner) = (Capnp.Gen.ById.Xb8630836983feed7.RealmGateway'export'params (Classes.Cerial msg internalRef) (Classes.Cerial msg externalRef) (Classes.Cerial msg internalOwner) (Classes.Cerial msg externalOwner) msg)
     decerialize raw = (RealmGateway'export'params <$> ((Capnp.Gen.ById.Xb8630836983feed7.get_RealmGateway'export'params'cap raw) >>= Classes.decerialize)
                                                   <*> ((Capnp.Gen.ById.Xb8630836983feed7.get_RealmGateway'export'params'params raw) >>= Classes.decerialize))
-instance (Classes.Marshal RealmGateway'export'params) where
+instance ((Classes.Decerialize internalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalRef))
+         ,(Classes.Decerialize externalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalRef))
+         ,(Classes.Decerialize internalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalOwner))
+         ,(Classes.Decerialize externalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalOwner))
+         ,(Classes.Cerialize s internalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalRef))
+         ,(Classes.Cerialize s externalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalRef))
+         ,(Classes.Cerialize s internalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalOwner))
+         ,(Classes.Cerialize s externalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalOwner))) => (Classes.Marshal s (RealmGateway'export'params internalRef externalRef internalOwner externalOwner)) where
     marshalInto raw_ value_ = case value_ of
         RealmGateway'export'params{..} ->
             (do
@@ -262,18 +600,138 @@
                 ((Classes.cerialize (Untyped.message raw_) params) >>= (Capnp.Gen.ById.Xb8630836983feed7.set_RealmGateway'export'params'params raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize RealmGateway'export'params)
-instance (Classes.Cerialize (V.Vector RealmGateway'export'params)) where
+instance ((Classes.Decerialize internalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalRef))
+         ,(Classes.Decerialize externalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalRef))
+         ,(Classes.Decerialize internalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalOwner))
+         ,(Classes.Decerialize externalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalOwner))
+         ,(Classes.Cerialize s internalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalRef))
+         ,(Classes.Cerialize s externalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalRef))
+         ,(Classes.Cerialize s internalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalOwner))
+         ,(Classes.Cerialize s externalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalOwner))) => (Classes.Cerialize s (RealmGateway'export'params internalRef externalRef internalOwner externalOwner))
+instance ((Classes.Decerialize internalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalRef))
+         ,(Classes.Decerialize externalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalRef))
+         ,(Classes.Decerialize internalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalOwner))
+         ,(Classes.Decerialize externalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalOwner))
+         ,(Classes.Cerialize s internalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalRef))
+         ,(Classes.Cerialize s externalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalRef))
+         ,(Classes.Cerialize s internalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalOwner))
+         ,(Classes.Cerialize s externalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalOwner))) => (Classes.Cerialize s (V.Vector (RealmGateway'export'params internalRef externalRef internalOwner externalOwner))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector RealmGateway'export'params))) where
+instance ((Classes.Decerialize internalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalRef))
+         ,(Classes.Decerialize externalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalRef))
+         ,(Classes.Decerialize internalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalOwner))
+         ,(Classes.Decerialize externalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalOwner))
+         ,(Classes.Cerialize s internalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalRef))
+         ,(Classes.Cerialize s externalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalRef))
+         ,(Classes.Cerialize s internalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalOwner))
+         ,(Classes.Cerialize s externalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalOwner))) => (Classes.Cerialize s (V.Vector (V.Vector (RealmGateway'export'params internalRef externalRef internalOwner externalOwner)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector RealmGateway'export'params)))) where
+instance ((Classes.Decerialize internalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalRef))
+         ,(Classes.Decerialize externalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalRef))
+         ,(Classes.Decerialize internalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalOwner))
+         ,(Classes.Decerialize externalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalOwner))
+         ,(Classes.Cerialize s internalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalRef))
+         ,(Classes.Cerialize s externalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalRef))
+         ,(Classes.Cerialize s internalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalOwner))
+         ,(Classes.Cerialize s externalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalOwner))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (RealmGateway'export'params internalRef externalRef internalOwner externalOwner))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector RealmGateway'export'params))))) where
+instance ((Classes.Decerialize internalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalRef))
+         ,(Classes.Decerialize externalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalRef))
+         ,(Classes.Decerialize internalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalOwner))
+         ,(Classes.Decerialize externalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalOwner))
+         ,(Classes.Cerialize s internalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalRef))
+         ,(Classes.Cerialize s externalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalRef))
+         ,(Classes.Cerialize s internalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalOwner))
+         ,(Classes.Cerialize s externalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalOwner))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (RealmGateway'export'params internalRef externalRef internalOwner externalOwner)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector RealmGateway'export'params)))))) where
+instance ((Classes.Decerialize internalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalRef))
+         ,(Classes.Decerialize externalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalRef))
+         ,(Classes.Decerialize internalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalOwner))
+         ,(Classes.Decerialize externalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalOwner))
+         ,(Classes.Cerialize s internalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalRef))
+         ,(Classes.Cerialize s externalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalRef))
+         ,(Classes.Cerialize s internalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalOwner))
+         ,(Classes.Cerialize s externalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalOwner))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (RealmGateway'export'params internalRef externalRef internalOwner externalOwner))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector RealmGateway'export'params))))))) where
+instance ((Classes.Decerialize internalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalRef))
+         ,(Classes.Decerialize externalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalRef))
+         ,(Classes.Decerialize internalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalOwner))
+         ,(Classes.Decerialize externalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalOwner))
+         ,(Classes.Cerialize s internalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalRef))
+         ,(Classes.Cerialize s externalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalRef))
+         ,(Classes.Cerialize s internalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalOwner))
+         ,(Classes.Cerialize s externalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalOwner))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (RealmGateway'export'params internalRef externalRef internalOwner externalOwner)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector RealmGateway'export'params)))))))) where
+instance ((Classes.Decerialize internalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalRef))
+         ,(Classes.Decerialize externalRef)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalRef))
+         ,(Classes.Decerialize internalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg internalOwner))
+         ,(Classes.Decerialize externalOwner)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg externalOwner))
+         ,(Classes.Cerialize s internalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalRef))
+         ,(Classes.Cerialize s externalRef)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalRef))
+         ,(Classes.Cerialize s internalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) internalOwner))
+         ,(Classes.Cerialize s externalOwner)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) externalOwner))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (RealmGateway'export'params internalRef externalRef internalOwner externalOwner))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
diff --git a/gen/lib/Capnp/Gen/Capnp/Rpc.hs b/gen/lib/Capnp/Gen/Capnp/Rpc.hs
--- a/gen/lib/Capnp/Gen/Capnp/Rpc.hs
+++ b/gen/lib/Capnp/Gen/Capnp/Rpc.hs
@@ -24,8 +24,6 @@
 import Prelude ((<$>), (<*>), (>>=))
 newtype Message msg
     = Message'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Message) where
-    tMsg f (Message'newtype_ s) = (Message'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Message msg)) where
     fromStruct struct = (Std_.pure (Message'newtype_ struct))
 instance (Classes.ToStruct msg (Message msg)) where
@@ -147,9 +145,11 @@
             _ ->
                 (Std_.pure (Message'unknown' (Std_.fromIntegral tag)))
         )
-get_Message' :: ((Untyped.ReadCtx m msg)) => (Message msg) -> (m (Message' msg))
+get_Message' :: ((Untyped.ReadCtx m msg)
+                ,(Classes.FromStruct msg (Message' msg))) => (Message msg) -> (m (Message' msg))
 get_Message' (Message'newtype_ struct) = (Classes.fromStruct struct)
-set_Message'unimplemented :: ((Untyped.RWCtx m s)) => (Message (Message.MutMsg s)) -> (Message (Message.MutMsg s)) -> (m ())
+set_Message'unimplemented :: ((Untyped.RWCtx m s)
+                             ,(Classes.ToPtr s (Message (Message.MutMsg s)))) => (Message (Message.MutMsg s)) -> (Message (Message.MutMsg s)) -> (m ())
 set_Message'unimplemented (Message'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (0 :: Std_.Word16) 0 0 0)
     (do
@@ -157,7 +157,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Message'abort :: ((Untyped.RWCtx m s)) => (Message (Message.MutMsg s)) -> (Exception (Message.MutMsg s)) -> (m ())
+set_Message'abort :: ((Untyped.RWCtx m s)
+                     ,(Classes.ToPtr s (Exception (Message.MutMsg s)))) => (Message (Message.MutMsg s)) -> (Exception (Message.MutMsg s)) -> (m ())
 set_Message'abort (Message'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (1 :: Std_.Word16) 0 0 0)
     (do
@@ -165,7 +166,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Message'call :: ((Untyped.RWCtx m s)) => (Message (Message.MutMsg s)) -> (Call (Message.MutMsg s)) -> (m ())
+set_Message'call :: ((Untyped.RWCtx m s)
+                    ,(Classes.ToPtr s (Call (Message.MutMsg s)))) => (Message (Message.MutMsg s)) -> (Call (Message.MutMsg s)) -> (m ())
 set_Message'call (Message'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (2 :: Std_.Word16) 0 0 0)
     (do
@@ -173,7 +175,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Message'return :: ((Untyped.RWCtx m s)) => (Message (Message.MutMsg s)) -> (Return (Message.MutMsg s)) -> (m ())
+set_Message'return :: ((Untyped.RWCtx m s)
+                      ,(Classes.ToPtr s (Return (Message.MutMsg s)))) => (Message (Message.MutMsg s)) -> (Return (Message.MutMsg s)) -> (m ())
 set_Message'return (Message'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (3 :: Std_.Word16) 0 0 0)
     (do
@@ -181,7 +184,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Message'finish :: ((Untyped.RWCtx m s)) => (Message (Message.MutMsg s)) -> (Finish (Message.MutMsg s)) -> (m ())
+set_Message'finish :: ((Untyped.RWCtx m s)
+                      ,(Classes.ToPtr s (Finish (Message.MutMsg s)))) => (Message (Message.MutMsg s)) -> (Finish (Message.MutMsg s)) -> (m ())
 set_Message'finish (Message'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (4 :: Std_.Word16) 0 0 0)
     (do
@@ -189,7 +193,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Message'resolve :: ((Untyped.RWCtx m s)) => (Message (Message.MutMsg s)) -> (Resolve (Message.MutMsg s)) -> (m ())
+set_Message'resolve :: ((Untyped.RWCtx m s)
+                       ,(Classes.ToPtr s (Resolve (Message.MutMsg s)))) => (Message (Message.MutMsg s)) -> (Resolve (Message.MutMsg s)) -> (m ())
 set_Message'resolve (Message'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (5 :: Std_.Word16) 0 0 0)
     (do
@@ -197,7 +202,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Message'release :: ((Untyped.RWCtx m s)) => (Message (Message.MutMsg s)) -> (Release (Message.MutMsg s)) -> (m ())
+set_Message'release :: ((Untyped.RWCtx m s)
+                       ,(Classes.ToPtr s (Release (Message.MutMsg s)))) => (Message (Message.MutMsg s)) -> (Release (Message.MutMsg s)) -> (m ())
 set_Message'release (Message'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (6 :: Std_.Word16) 0 0 0)
     (do
@@ -205,7 +211,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Message'obsoleteSave :: ((Untyped.RWCtx m s)) => (Message (Message.MutMsg s)) -> (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))) -> (m ())
+set_Message'obsoleteSave :: ((Untyped.RWCtx m s)
+                            ,(Classes.ToPtr s (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))))) => (Message (Message.MutMsg s)) -> (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))) -> (m ())
 set_Message'obsoleteSave (Message'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (7 :: Std_.Word16) 0 0 0)
     (do
@@ -213,7 +220,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Message'bootstrap :: ((Untyped.RWCtx m s)) => (Message (Message.MutMsg s)) -> (Bootstrap (Message.MutMsg s)) -> (m ())
+set_Message'bootstrap :: ((Untyped.RWCtx m s)
+                         ,(Classes.ToPtr s (Bootstrap (Message.MutMsg s)))) => (Message (Message.MutMsg s)) -> (Bootstrap (Message.MutMsg s)) -> (m ())
 set_Message'bootstrap (Message'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (8 :: Std_.Word16) 0 0 0)
     (do
@@ -221,7 +229,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Message'obsoleteDelete :: ((Untyped.RWCtx m s)) => (Message (Message.MutMsg s)) -> (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))) -> (m ())
+set_Message'obsoleteDelete :: ((Untyped.RWCtx m s)
+                              ,(Classes.ToPtr s (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))))) => (Message (Message.MutMsg s)) -> (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))) -> (m ())
 set_Message'obsoleteDelete (Message'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (9 :: Std_.Word16) 0 0 0)
     (do
@@ -229,7 +238,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Message'provide :: ((Untyped.RWCtx m s)) => (Message (Message.MutMsg s)) -> (Provide (Message.MutMsg s)) -> (m ())
+set_Message'provide :: ((Untyped.RWCtx m s)
+                       ,(Classes.ToPtr s (Provide (Message.MutMsg s)))) => (Message (Message.MutMsg s)) -> (Provide (Message.MutMsg s)) -> (m ())
 set_Message'provide (Message'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (10 :: Std_.Word16) 0 0 0)
     (do
@@ -237,7 +247,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Message'accept :: ((Untyped.RWCtx m s)) => (Message (Message.MutMsg s)) -> (Accept (Message.MutMsg s)) -> (m ())
+set_Message'accept :: ((Untyped.RWCtx m s)
+                      ,(Classes.ToPtr s (Accept (Message.MutMsg s)))) => (Message (Message.MutMsg s)) -> (Accept (Message.MutMsg s)) -> (m ())
 set_Message'accept (Message'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (11 :: Std_.Word16) 0 0 0)
     (do
@@ -245,7 +256,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Message'join :: ((Untyped.RWCtx m s)) => (Message (Message.MutMsg s)) -> (Join (Message.MutMsg s)) -> (m ())
+set_Message'join :: ((Untyped.RWCtx m s)
+                    ,(Classes.ToPtr s (Join (Message.MutMsg s)))) => (Message (Message.MutMsg s)) -> (Join (Message.MutMsg s)) -> (m ())
 set_Message'join (Message'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (12 :: Std_.Word16) 0 0 0)
     (do
@@ -253,7 +265,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Message'disembargo :: ((Untyped.RWCtx m s)) => (Message (Message.MutMsg s)) -> (Disembargo (Message.MutMsg s)) -> (m ())
+set_Message'disembargo :: ((Untyped.RWCtx m s)
+                          ,(Classes.ToPtr s (Disembargo (Message.MutMsg s)))) => (Message (Message.MutMsg s)) -> (Disembargo (Message.MutMsg s)) -> (m ())
 set_Message'disembargo (Message'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (13 :: Std_.Word16) 0 0 0)
     (do
@@ -265,8 +278,6 @@
 set_Message'unknown' (Message'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 0 0 0)
 newtype Bootstrap msg
     = Bootstrap'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Bootstrap) where
-    tMsg f (Bootstrap'newtype_ s) = (Bootstrap'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Bootstrap msg)) where
     fromStruct struct = (Std_.pure (Bootstrap'newtype_ struct))
 instance (Classes.ToStruct msg (Bootstrap msg)) where
@@ -299,12 +310,14 @@
 get_Bootstrap'questionId (Bootstrap'newtype_ struct) = (GenHelpers.getWordField struct 0 0 0)
 set_Bootstrap'questionId :: ((Untyped.RWCtx m s)) => (Bootstrap (Message.MutMsg s)) -> Std_.Word32 -> (m ())
 set_Bootstrap'questionId (Bootstrap'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word32) 0 0 0)
-get_Bootstrap'deprecatedObjectId :: ((Untyped.ReadCtx m msg)) => (Bootstrap msg) -> (m (Std_.Maybe (Untyped.Ptr msg)))
+get_Bootstrap'deprecatedObjectId :: ((Untyped.ReadCtx m msg)
+                                    ,(Classes.FromPtr msg (Std_.Maybe (Untyped.Ptr msg)))) => (Bootstrap msg) -> (m (Std_.Maybe (Untyped.Ptr msg)))
 get_Bootstrap'deprecatedObjectId (Bootstrap'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Bootstrap'deprecatedObjectId :: ((Untyped.RWCtx m s)) => (Bootstrap (Message.MutMsg s)) -> (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))) -> (m ())
+set_Bootstrap'deprecatedObjectId :: ((Untyped.RWCtx m s)
+                                    ,(Classes.ToPtr s (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))))) => (Bootstrap (Message.MutMsg s)) -> (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))) -> (m ())
 set_Bootstrap'deprecatedObjectId (Bootstrap'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -313,8 +326,6 @@
 has_Bootstrap'deprecatedObjectId (Bootstrap'newtype_ struct) = (Std_.isJust <$> (Untyped.getPtr 0 struct))
 newtype Call msg
     = Call'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Call) where
-    tMsg f (Call'newtype_ s) = (Call'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Call msg)) where
     fromStruct struct = (Std_.pure (Call'newtype_ struct))
 instance (Classes.ToStruct msg (Call msg)) where
@@ -347,12 +358,14 @@
 get_Call'questionId (Call'newtype_ struct) = (GenHelpers.getWordField struct 0 0 0)
 set_Call'questionId :: ((Untyped.RWCtx m s)) => (Call (Message.MutMsg s)) -> Std_.Word32 -> (m ())
 set_Call'questionId (Call'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word32) 0 0 0)
-get_Call'target :: ((Untyped.ReadCtx m msg)) => (Call msg) -> (m (MessageTarget msg))
+get_Call'target :: ((Untyped.ReadCtx m msg)
+                   ,(Classes.FromPtr msg (MessageTarget msg))) => (Call msg) -> (m (MessageTarget msg))
 get_Call'target (Call'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Call'target :: ((Untyped.RWCtx m s)) => (Call (Message.MutMsg s)) -> (MessageTarget (Message.MutMsg s)) -> (m ())
+set_Call'target :: ((Untyped.RWCtx m s)
+                   ,(Classes.ToPtr s (MessageTarget (Message.MutMsg s)))) => (Call (Message.MutMsg s)) -> (MessageTarget (Message.MutMsg s)) -> (m ())
 set_Call'target (Call'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -373,12 +386,14 @@
 get_Call'methodId (Call'newtype_ struct) = (GenHelpers.getWordField struct 0 32 0)
 set_Call'methodId :: ((Untyped.RWCtx m s)) => (Call (Message.MutMsg s)) -> Std_.Word16 -> (m ())
 set_Call'methodId (Call'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 0 32 0)
-get_Call'params :: ((Untyped.ReadCtx m msg)) => (Call msg) -> (m (Payload msg))
+get_Call'params :: ((Untyped.ReadCtx m msg)
+                   ,(Classes.FromPtr msg (Payload msg))) => (Call msg) -> (m (Payload msg))
 get_Call'params (Call'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 1 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Call'params :: ((Untyped.RWCtx m s)) => (Call (Message.MutMsg s)) -> (Payload (Message.MutMsg s)) -> (m ())
+set_Call'params :: ((Untyped.RWCtx m s)
+                   ,(Classes.ToPtr s (Payload (Message.MutMsg s)))) => (Call (Message.MutMsg s)) -> (Payload (Message.MutMsg s)) -> (m ())
 set_Call'params (Call'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 1 struct)
@@ -391,7 +406,8 @@
     (set_Call'params struct result)
     (Std_.pure result)
     )
-get_Call'sendResultsTo :: ((Untyped.ReadCtx m msg)) => (Call msg) -> (m (Call'sendResultsTo msg))
+get_Call'sendResultsTo :: ((Untyped.ReadCtx m msg)
+                          ,(Classes.FromStruct msg (Call'sendResultsTo msg))) => (Call msg) -> (m (Call'sendResultsTo msg))
 get_Call'sendResultsTo (Call'newtype_ struct) = (Classes.fromStruct struct)
 get_Call'allowThirdPartyTailCall :: ((Untyped.ReadCtx m msg)) => (Call msg) -> (m Std_.Bool)
 get_Call'allowThirdPartyTailCall (Call'newtype_ struct) = (GenHelpers.getWordField struct 2 0 0)
@@ -399,8 +415,6 @@
 set_Call'allowThirdPartyTailCall (Call'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word1) 2 0 0)
 newtype Call'sendResultsTo msg
     = Call'sendResultsTo'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Call'sendResultsTo) where
-    tMsg f (Call'sendResultsTo'newtype_ s) = (Call'sendResultsTo'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Call'sendResultsTo msg)) where
     fromStruct struct = (Std_.pure (Call'sendResultsTo'newtype_ struct))
 instance (Classes.ToStruct msg (Call'sendResultsTo msg)) where
@@ -431,7 +445,8 @@
             _ ->
                 (Std_.pure (Call'sendResultsTo'unknown' (Std_.fromIntegral tag)))
         )
-get_Call'sendResultsTo' :: ((Untyped.ReadCtx m msg)) => (Call'sendResultsTo msg) -> (m (Call'sendResultsTo' msg))
+get_Call'sendResultsTo' :: ((Untyped.ReadCtx m msg)
+                           ,(Classes.FromStruct msg (Call'sendResultsTo' msg))) => (Call'sendResultsTo msg) -> (m (Call'sendResultsTo' msg))
 get_Call'sendResultsTo' (Call'sendResultsTo'newtype_ struct) = (Classes.fromStruct struct)
 set_Call'sendResultsTo'caller :: ((Untyped.RWCtx m s)) => (Call'sendResultsTo (Message.MutMsg s)) -> (m ())
 set_Call'sendResultsTo'caller (Call'sendResultsTo'newtype_ struct) = (do
@@ -443,7 +458,8 @@
     (GenHelpers.setWordField struct (1 :: Std_.Word16) 0 48 0)
     (Std_.pure ())
     )
-set_Call'sendResultsTo'thirdParty :: ((Untyped.RWCtx m s)) => (Call'sendResultsTo (Message.MutMsg s)) -> (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))) -> (m ())
+set_Call'sendResultsTo'thirdParty :: ((Untyped.RWCtx m s)
+                                     ,(Classes.ToPtr s (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))))) => (Call'sendResultsTo (Message.MutMsg s)) -> (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))) -> (m ())
 set_Call'sendResultsTo'thirdParty (Call'sendResultsTo'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (2 :: Std_.Word16) 0 48 0)
     (do
@@ -455,8 +471,6 @@
 set_Call'sendResultsTo'unknown' (Call'sendResultsTo'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 0 48 0)
 newtype Return msg
     = Return'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Return) where
-    tMsg f (Return'newtype_ s) = (Return'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Return msg)) where
     fromStruct struct = (Std_.pure (Return'newtype_ struct))
 instance (Classes.ToStruct msg (Return msg)) where
@@ -529,9 +543,11 @@
             _ ->
                 (Std_.pure (Return'unknown' (Std_.fromIntegral tag)))
         )
-get_Return' :: ((Untyped.ReadCtx m msg)) => (Return msg) -> (m (Return' msg))
+get_Return' :: ((Untyped.ReadCtx m msg)
+               ,(Classes.FromStruct msg (Return' msg))) => (Return msg) -> (m (Return' msg))
 get_Return' (Return'newtype_ struct) = (Classes.fromStruct struct)
-set_Return'results :: ((Untyped.RWCtx m s)) => (Return (Message.MutMsg s)) -> (Payload (Message.MutMsg s)) -> (m ())
+set_Return'results :: ((Untyped.RWCtx m s)
+                      ,(Classes.ToPtr s (Payload (Message.MutMsg s)))) => (Return (Message.MutMsg s)) -> (Payload (Message.MutMsg s)) -> (m ())
 set_Return'results (Return'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (0 :: Std_.Word16) 0 48 0)
     (do
@@ -539,7 +555,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Return'exception :: ((Untyped.RWCtx m s)) => (Return (Message.MutMsg s)) -> (Exception (Message.MutMsg s)) -> (m ())
+set_Return'exception :: ((Untyped.RWCtx m s)
+                        ,(Classes.ToPtr s (Exception (Message.MutMsg s)))) => (Return (Message.MutMsg s)) -> (Exception (Message.MutMsg s)) -> (m ())
 set_Return'exception (Return'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (1 :: Std_.Word16) 0 48 0)
     (do
@@ -562,7 +579,8 @@
     (GenHelpers.setWordField struct (4 :: Std_.Word16) 0 48 0)
     (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word32) 1 0 0)
     )
-set_Return'acceptFromThirdParty :: ((Untyped.RWCtx m s)) => (Return (Message.MutMsg s)) -> (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))) -> (m ())
+set_Return'acceptFromThirdParty :: ((Untyped.RWCtx m s)
+                                   ,(Classes.ToPtr s (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))))) => (Return (Message.MutMsg s)) -> (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))) -> (m ())
 set_Return'acceptFromThirdParty (Return'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (5 :: Std_.Word16) 0 48 0)
     (do
@@ -574,8 +592,6 @@
 set_Return'unknown' (Return'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 0 48 0)
 newtype Finish msg
     = Finish'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Finish) where
-    tMsg f (Finish'newtype_ s) = (Finish'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Finish msg)) where
     fromStruct struct = (Std_.pure (Finish'newtype_ struct))
 instance (Classes.ToStruct msg (Finish msg)) where
@@ -614,8 +630,6 @@
 set_Finish'releaseResultCaps (Finish'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word1) 0 32 1)
 newtype Resolve msg
     = Resolve'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Resolve) where
-    tMsg f (Resolve'newtype_ s) = (Resolve'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Resolve msg)) where
     fromStruct struct = (Std_.pure (Resolve'newtype_ struct))
 instance (Classes.ToStruct msg (Resolve msg)) where
@@ -669,9 +683,11 @@
             _ ->
                 (Std_.pure (Resolve'unknown' (Std_.fromIntegral tag)))
         )
-get_Resolve' :: ((Untyped.ReadCtx m msg)) => (Resolve msg) -> (m (Resolve' msg))
+get_Resolve' :: ((Untyped.ReadCtx m msg)
+                ,(Classes.FromStruct msg (Resolve' msg))) => (Resolve msg) -> (m (Resolve' msg))
 get_Resolve' (Resolve'newtype_ struct) = (Classes.fromStruct struct)
-set_Resolve'cap :: ((Untyped.RWCtx m s)) => (Resolve (Message.MutMsg s)) -> (CapDescriptor (Message.MutMsg s)) -> (m ())
+set_Resolve'cap :: ((Untyped.RWCtx m s)
+                   ,(Classes.ToPtr s (CapDescriptor (Message.MutMsg s)))) => (Resolve (Message.MutMsg s)) -> (CapDescriptor (Message.MutMsg s)) -> (m ())
 set_Resolve'cap (Resolve'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (0 :: Std_.Word16) 0 32 0)
     (do
@@ -679,7 +695,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Resolve'exception :: ((Untyped.RWCtx m s)) => (Resolve (Message.MutMsg s)) -> (Exception (Message.MutMsg s)) -> (m ())
+set_Resolve'exception :: ((Untyped.RWCtx m s)
+                         ,(Classes.ToPtr s (Exception (Message.MutMsg s)))) => (Resolve (Message.MutMsg s)) -> (Exception (Message.MutMsg s)) -> (m ())
 set_Resolve'exception (Resolve'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (1 :: Std_.Word16) 0 32 0)
     (do
@@ -691,8 +708,6 @@
 set_Resolve'unknown' (Resolve'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 0 32 0)
 newtype Release msg
     = Release'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Release) where
-    tMsg f (Release'newtype_ s) = (Release'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Release msg)) where
     fromStruct struct = (Std_.pure (Release'newtype_ struct))
 instance (Classes.ToStruct msg (Release msg)) where
@@ -731,8 +746,6 @@
 set_Release'referenceCount (Release'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word32) 0 32 0)
 newtype Disembargo msg
     = Disembargo'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Disembargo) where
-    tMsg f (Disembargo'newtype_ s) = (Disembargo'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Disembargo msg)) where
     fromStruct struct = (Std_.pure (Disembargo'newtype_ struct))
 instance (Classes.ToStruct msg (Disembargo msg)) where
@@ -761,12 +774,14 @@
 instance (Basics.MutListElem s (Disembargo (Message.MutMsg s))) where
     setIndex (Disembargo'newtype_ elt) i (Disembargo'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Disembargo'List_ <$> (Untyped.allocCompositeList msg 1 1 len))
-get_Disembargo'target :: ((Untyped.ReadCtx m msg)) => (Disembargo msg) -> (m (MessageTarget msg))
+get_Disembargo'target :: ((Untyped.ReadCtx m msg)
+                         ,(Classes.FromPtr msg (MessageTarget msg))) => (Disembargo msg) -> (m (MessageTarget msg))
 get_Disembargo'target (Disembargo'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Disembargo'target :: ((Untyped.RWCtx m s)) => (Disembargo (Message.MutMsg s)) -> (MessageTarget (Message.MutMsg s)) -> (m ())
+set_Disembargo'target :: ((Untyped.RWCtx m s)
+                         ,(Classes.ToPtr s (MessageTarget (Message.MutMsg s)))) => (Disembargo (Message.MutMsg s)) -> (MessageTarget (Message.MutMsg s)) -> (m ())
 set_Disembargo'target (Disembargo'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -779,12 +794,11 @@
     (set_Disembargo'target struct result)
     (Std_.pure result)
     )
-get_Disembargo'context :: ((Untyped.ReadCtx m msg)) => (Disembargo msg) -> (m (Disembargo'context msg))
+get_Disembargo'context :: ((Untyped.ReadCtx m msg)
+                          ,(Classes.FromStruct msg (Disembargo'context msg))) => (Disembargo msg) -> (m (Disembargo'context msg))
 get_Disembargo'context (Disembargo'newtype_ struct) = (Classes.fromStruct struct)
 newtype Disembargo'context msg
     = Disembargo'context'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Disembargo'context) where
-    tMsg f (Disembargo'context'newtype_ s) = (Disembargo'context'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Disembargo'context msg)) where
     fromStruct struct = (Std_.pure (Disembargo'context'newtype_ struct))
 instance (Classes.ToStruct msg (Disembargo'context msg)) where
@@ -815,7 +829,8 @@
             _ ->
                 (Std_.pure (Disembargo'context'unknown' (Std_.fromIntegral tag)))
         )
-get_Disembargo'context' :: ((Untyped.ReadCtx m msg)) => (Disembargo'context msg) -> (m (Disembargo'context' msg))
+get_Disembargo'context' :: ((Untyped.ReadCtx m msg)
+                           ,(Classes.FromStruct msg (Disembargo'context' msg))) => (Disembargo'context msg) -> (m (Disembargo'context' msg))
 get_Disembargo'context' (Disembargo'context'newtype_ struct) = (Classes.fromStruct struct)
 set_Disembargo'context'senderLoopback :: ((Untyped.RWCtx m s)) => (Disembargo'context (Message.MutMsg s)) -> Std_.Word32 -> (m ())
 set_Disembargo'context'senderLoopback (Disembargo'context'newtype_ struct) value = (do
@@ -841,8 +856,6 @@
 set_Disembargo'context'unknown' (Disembargo'context'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 0 32 0)
 newtype Provide msg
     = Provide'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Provide) where
-    tMsg f (Provide'newtype_ s) = (Provide'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Provide msg)) where
     fromStruct struct = (Std_.pure (Provide'newtype_ struct))
 instance (Classes.ToStruct msg (Provide msg)) where
@@ -875,12 +888,14 @@
 get_Provide'questionId (Provide'newtype_ struct) = (GenHelpers.getWordField struct 0 0 0)
 set_Provide'questionId :: ((Untyped.RWCtx m s)) => (Provide (Message.MutMsg s)) -> Std_.Word32 -> (m ())
 set_Provide'questionId (Provide'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word32) 0 0 0)
-get_Provide'target :: ((Untyped.ReadCtx m msg)) => (Provide msg) -> (m (MessageTarget msg))
+get_Provide'target :: ((Untyped.ReadCtx m msg)
+                      ,(Classes.FromPtr msg (MessageTarget msg))) => (Provide msg) -> (m (MessageTarget msg))
 get_Provide'target (Provide'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Provide'target :: ((Untyped.RWCtx m s)) => (Provide (Message.MutMsg s)) -> (MessageTarget (Message.MutMsg s)) -> (m ())
+set_Provide'target :: ((Untyped.RWCtx m s)
+                      ,(Classes.ToPtr s (MessageTarget (Message.MutMsg s)))) => (Provide (Message.MutMsg s)) -> (MessageTarget (Message.MutMsg s)) -> (m ())
 set_Provide'target (Provide'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -893,12 +908,14 @@
     (set_Provide'target struct result)
     (Std_.pure result)
     )
-get_Provide'recipient :: ((Untyped.ReadCtx m msg)) => (Provide msg) -> (m (Std_.Maybe (Untyped.Ptr msg)))
+get_Provide'recipient :: ((Untyped.ReadCtx m msg)
+                         ,(Classes.FromPtr msg (Std_.Maybe (Untyped.Ptr msg)))) => (Provide msg) -> (m (Std_.Maybe (Untyped.Ptr msg)))
 get_Provide'recipient (Provide'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 1 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Provide'recipient :: ((Untyped.RWCtx m s)) => (Provide (Message.MutMsg s)) -> (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))) -> (m ())
+set_Provide'recipient :: ((Untyped.RWCtx m s)
+                         ,(Classes.ToPtr s (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))))) => (Provide (Message.MutMsg s)) -> (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))) -> (m ())
 set_Provide'recipient (Provide'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 1 struct)
@@ -907,8 +924,6 @@
 has_Provide'recipient (Provide'newtype_ struct) = (Std_.isJust <$> (Untyped.getPtr 1 struct))
 newtype Accept msg
     = Accept'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Accept) where
-    tMsg f (Accept'newtype_ s) = (Accept'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Accept msg)) where
     fromStruct struct = (Std_.pure (Accept'newtype_ struct))
 instance (Classes.ToStruct msg (Accept msg)) where
@@ -941,12 +956,14 @@
 get_Accept'questionId (Accept'newtype_ struct) = (GenHelpers.getWordField struct 0 0 0)
 set_Accept'questionId :: ((Untyped.RWCtx m s)) => (Accept (Message.MutMsg s)) -> Std_.Word32 -> (m ())
 set_Accept'questionId (Accept'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word32) 0 0 0)
-get_Accept'provision :: ((Untyped.ReadCtx m msg)) => (Accept msg) -> (m (Std_.Maybe (Untyped.Ptr msg)))
+get_Accept'provision :: ((Untyped.ReadCtx m msg)
+                        ,(Classes.FromPtr msg (Std_.Maybe (Untyped.Ptr msg)))) => (Accept msg) -> (m (Std_.Maybe (Untyped.Ptr msg)))
 get_Accept'provision (Accept'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Accept'provision :: ((Untyped.RWCtx m s)) => (Accept (Message.MutMsg s)) -> (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))) -> (m ())
+set_Accept'provision :: ((Untyped.RWCtx m s)
+                        ,(Classes.ToPtr s (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))))) => (Accept (Message.MutMsg s)) -> (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))) -> (m ())
 set_Accept'provision (Accept'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -959,8 +976,6 @@
 set_Accept'embargo (Accept'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word1) 0 32 0)
 newtype Join msg
     = Join'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Join) where
-    tMsg f (Join'newtype_ s) = (Join'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Join msg)) where
     fromStruct struct = (Std_.pure (Join'newtype_ struct))
 instance (Classes.ToStruct msg (Join msg)) where
@@ -993,12 +1008,14 @@
 get_Join'questionId (Join'newtype_ struct) = (GenHelpers.getWordField struct 0 0 0)
 set_Join'questionId :: ((Untyped.RWCtx m s)) => (Join (Message.MutMsg s)) -> Std_.Word32 -> (m ())
 set_Join'questionId (Join'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word32) 0 0 0)
-get_Join'target :: ((Untyped.ReadCtx m msg)) => (Join msg) -> (m (MessageTarget msg))
+get_Join'target :: ((Untyped.ReadCtx m msg)
+                   ,(Classes.FromPtr msg (MessageTarget msg))) => (Join msg) -> (m (MessageTarget msg))
 get_Join'target (Join'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Join'target :: ((Untyped.RWCtx m s)) => (Join (Message.MutMsg s)) -> (MessageTarget (Message.MutMsg s)) -> (m ())
+set_Join'target :: ((Untyped.RWCtx m s)
+                   ,(Classes.ToPtr s (MessageTarget (Message.MutMsg s)))) => (Join (Message.MutMsg s)) -> (MessageTarget (Message.MutMsg s)) -> (m ())
 set_Join'target (Join'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -1011,12 +1028,14 @@
     (set_Join'target struct result)
     (Std_.pure result)
     )
-get_Join'keyPart :: ((Untyped.ReadCtx m msg)) => (Join msg) -> (m (Std_.Maybe (Untyped.Ptr msg)))
+get_Join'keyPart :: ((Untyped.ReadCtx m msg)
+                    ,(Classes.FromPtr msg (Std_.Maybe (Untyped.Ptr msg)))) => (Join msg) -> (m (Std_.Maybe (Untyped.Ptr msg)))
 get_Join'keyPart (Join'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 1 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Join'keyPart :: ((Untyped.RWCtx m s)) => (Join (Message.MutMsg s)) -> (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))) -> (m ())
+set_Join'keyPart :: ((Untyped.RWCtx m s)
+                    ,(Classes.ToPtr s (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))))) => (Join (Message.MutMsg s)) -> (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))) -> (m ())
 set_Join'keyPart (Join'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 1 struct)
@@ -1025,8 +1044,6 @@
 has_Join'keyPart (Join'newtype_ struct) = (Std_.isJust <$> (Untyped.getPtr 1 struct))
 newtype MessageTarget msg
     = MessageTarget'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg MessageTarget) where
-    tMsg f (MessageTarget'newtype_ s) = (MessageTarget'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (MessageTarget msg)) where
     fromStruct struct = (Std_.pure (MessageTarget'newtype_ struct))
 instance (Classes.ToStruct msg (MessageTarget msg)) where
@@ -1073,14 +1090,16 @@
             _ ->
                 (Std_.pure (MessageTarget'unknown' (Std_.fromIntegral tag)))
         )
-get_MessageTarget' :: ((Untyped.ReadCtx m msg)) => (MessageTarget msg) -> (m (MessageTarget' msg))
+get_MessageTarget' :: ((Untyped.ReadCtx m msg)
+                      ,(Classes.FromStruct msg (MessageTarget' msg))) => (MessageTarget msg) -> (m (MessageTarget' msg))
 get_MessageTarget' (MessageTarget'newtype_ struct) = (Classes.fromStruct struct)
 set_MessageTarget'importedCap :: ((Untyped.RWCtx m s)) => (MessageTarget (Message.MutMsg s)) -> Std_.Word32 -> (m ())
 set_MessageTarget'importedCap (MessageTarget'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (0 :: Std_.Word16) 0 32 0)
     (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word32) 0 0 0)
     )
-set_MessageTarget'promisedAnswer :: ((Untyped.RWCtx m s)) => (MessageTarget (Message.MutMsg s)) -> (PromisedAnswer (Message.MutMsg s)) -> (m ())
+set_MessageTarget'promisedAnswer :: ((Untyped.RWCtx m s)
+                                    ,(Classes.ToPtr s (PromisedAnswer (Message.MutMsg s)))) => (MessageTarget (Message.MutMsg s)) -> (PromisedAnswer (Message.MutMsg s)) -> (m ())
 set_MessageTarget'promisedAnswer (MessageTarget'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (1 :: Std_.Word16) 0 32 0)
     (do
@@ -1092,8 +1111,6 @@
 set_MessageTarget'unknown' (MessageTarget'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 0 32 0)
 newtype Payload msg
     = Payload'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Payload) where
-    tMsg f (Payload'newtype_ s) = (Payload'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Payload msg)) where
     fromStruct struct = (Std_.pure (Payload'newtype_ struct))
 instance (Classes.ToStruct msg (Payload msg)) where
@@ -1122,24 +1139,28 @@
 instance (Basics.MutListElem s (Payload (Message.MutMsg s))) where
     setIndex (Payload'newtype_ elt) i (Payload'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Payload'List_ <$> (Untyped.allocCompositeList msg 0 2 len))
-get_Payload'content :: ((Untyped.ReadCtx m msg)) => (Payload msg) -> (m (Std_.Maybe (Untyped.Ptr msg)))
+get_Payload'content :: ((Untyped.ReadCtx m msg)
+                       ,(Classes.FromPtr msg (Std_.Maybe (Untyped.Ptr msg)))) => (Payload msg) -> (m (Std_.Maybe (Untyped.Ptr msg)))
 get_Payload'content (Payload'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Payload'content :: ((Untyped.RWCtx m s)) => (Payload (Message.MutMsg s)) -> (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))) -> (m ())
+set_Payload'content :: ((Untyped.RWCtx m s)
+                       ,(Classes.ToPtr s (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))))) => (Payload (Message.MutMsg s)) -> (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))) -> (m ())
 set_Payload'content (Payload'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
     )
 has_Payload'content :: ((Untyped.ReadCtx m msg)) => (Payload msg) -> (m Std_.Bool)
 has_Payload'content (Payload'newtype_ struct) = (Std_.isJust <$> (Untyped.getPtr 0 struct))
-get_Payload'capTable :: ((Untyped.ReadCtx m msg)) => (Payload msg) -> (m (Basics.List msg (CapDescriptor msg)))
+get_Payload'capTable :: ((Untyped.ReadCtx m msg)
+                        ,(Classes.FromPtr msg (Basics.List msg (CapDescriptor msg)))) => (Payload msg) -> (m (Basics.List msg (CapDescriptor msg)))
 get_Payload'capTable (Payload'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 1 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Payload'capTable :: ((Untyped.RWCtx m s)) => (Payload (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (CapDescriptor (Message.MutMsg s))) -> (m ())
+set_Payload'capTable :: ((Untyped.RWCtx m s)
+                        ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (CapDescriptor (Message.MutMsg s))))) => (Payload (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (CapDescriptor (Message.MutMsg s))) -> (m ())
 set_Payload'capTable (Payload'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 1 struct)
@@ -1154,8 +1175,6 @@
     )
 newtype CapDescriptor msg
     = CapDescriptor'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg CapDescriptor) where
-    tMsg f (CapDescriptor'newtype_ s) = (CapDescriptor'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (CapDescriptor msg)) where
     fromStruct struct = (Std_.pure (CapDescriptor'newtype_ struct))
 instance (Classes.ToStruct msg (CapDescriptor msg)) where
@@ -1221,7 +1240,8 @@
             _ ->
                 (Std_.pure (CapDescriptor'unknown' (Std_.fromIntegral tag)))
         )
-get_CapDescriptor' :: ((Untyped.ReadCtx m msg)) => (CapDescriptor msg) -> (m (CapDescriptor' msg))
+get_CapDescriptor' :: ((Untyped.ReadCtx m msg)
+                      ,(Classes.FromStruct msg (CapDescriptor' msg))) => (CapDescriptor msg) -> (m (CapDescriptor' msg))
 get_CapDescriptor' (CapDescriptor'newtype_ struct) = (Classes.fromStruct struct)
 set_CapDescriptor'none :: ((Untyped.RWCtx m s)) => (CapDescriptor (Message.MutMsg s)) -> (m ())
 set_CapDescriptor'none (CapDescriptor'newtype_ struct) = (do
@@ -1243,7 +1263,8 @@
     (GenHelpers.setWordField struct (3 :: Std_.Word16) 0 0 0)
     (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word32) 0 32 0)
     )
-set_CapDescriptor'receiverAnswer :: ((Untyped.RWCtx m s)) => (CapDescriptor (Message.MutMsg s)) -> (PromisedAnswer (Message.MutMsg s)) -> (m ())
+set_CapDescriptor'receiverAnswer :: ((Untyped.RWCtx m s)
+                                    ,(Classes.ToPtr s (PromisedAnswer (Message.MutMsg s)))) => (CapDescriptor (Message.MutMsg s)) -> (PromisedAnswer (Message.MutMsg s)) -> (m ())
 set_CapDescriptor'receiverAnswer (CapDescriptor'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (4 :: Std_.Word16) 0 0 0)
     (do
@@ -1251,7 +1272,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_CapDescriptor'thirdPartyHosted :: ((Untyped.RWCtx m s)) => (CapDescriptor (Message.MutMsg s)) -> (ThirdPartyCapDescriptor (Message.MutMsg s)) -> (m ())
+set_CapDescriptor'thirdPartyHosted :: ((Untyped.RWCtx m s)
+                                      ,(Classes.ToPtr s (ThirdPartyCapDescriptor (Message.MutMsg s)))) => (CapDescriptor (Message.MutMsg s)) -> (ThirdPartyCapDescriptor (Message.MutMsg s)) -> (m ())
 set_CapDescriptor'thirdPartyHosted (CapDescriptor'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (5 :: Std_.Word16) 0 0 0)
     (do
@@ -1263,8 +1285,6 @@
 set_CapDescriptor'unknown' (CapDescriptor'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 0 0 0)
 newtype PromisedAnswer msg
     = PromisedAnswer'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg PromisedAnswer) where
-    tMsg f (PromisedAnswer'newtype_ s) = (PromisedAnswer'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (PromisedAnswer msg)) where
     fromStruct struct = (Std_.pure (PromisedAnswer'newtype_ struct))
 instance (Classes.ToStruct msg (PromisedAnswer msg)) where
@@ -1297,12 +1317,14 @@
 get_PromisedAnswer'questionId (PromisedAnswer'newtype_ struct) = (GenHelpers.getWordField struct 0 0 0)
 set_PromisedAnswer'questionId :: ((Untyped.RWCtx m s)) => (PromisedAnswer (Message.MutMsg s)) -> Std_.Word32 -> (m ())
 set_PromisedAnswer'questionId (PromisedAnswer'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word32) 0 0 0)
-get_PromisedAnswer'transform :: ((Untyped.ReadCtx m msg)) => (PromisedAnswer msg) -> (m (Basics.List msg (PromisedAnswer'Op msg)))
+get_PromisedAnswer'transform :: ((Untyped.ReadCtx m msg)
+                                ,(Classes.FromPtr msg (Basics.List msg (PromisedAnswer'Op msg)))) => (PromisedAnswer msg) -> (m (Basics.List msg (PromisedAnswer'Op msg)))
 get_PromisedAnswer'transform (PromisedAnswer'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_PromisedAnswer'transform :: ((Untyped.RWCtx m s)) => (PromisedAnswer (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (PromisedAnswer'Op (Message.MutMsg s))) -> (m ())
+set_PromisedAnswer'transform :: ((Untyped.RWCtx m s)
+                                ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (PromisedAnswer'Op (Message.MutMsg s))))) => (PromisedAnswer (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (PromisedAnswer'Op (Message.MutMsg s))) -> (m ())
 set_PromisedAnswer'transform (PromisedAnswer'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -1317,8 +1339,6 @@
     )
 newtype PromisedAnswer'Op msg
     = PromisedAnswer'Op'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg PromisedAnswer'Op) where
-    tMsg f (PromisedAnswer'Op'newtype_ s) = (PromisedAnswer'Op'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (PromisedAnswer'Op msg)) where
     fromStruct struct = (Std_.pure (PromisedAnswer'Op'newtype_ struct))
 instance (Classes.ToStruct msg (PromisedAnswer'Op msg)) where
@@ -1362,7 +1382,8 @@
             _ ->
                 (Std_.pure (PromisedAnswer'Op'unknown' (Std_.fromIntegral tag)))
         )
-get_PromisedAnswer'Op' :: ((Untyped.ReadCtx m msg)) => (PromisedAnswer'Op msg) -> (m (PromisedAnswer'Op' msg))
+get_PromisedAnswer'Op' :: ((Untyped.ReadCtx m msg)
+                          ,(Classes.FromStruct msg (PromisedAnswer'Op' msg))) => (PromisedAnswer'Op msg) -> (m (PromisedAnswer'Op' msg))
 get_PromisedAnswer'Op' (PromisedAnswer'Op'newtype_ struct) = (Classes.fromStruct struct)
 set_PromisedAnswer'Op'noop :: ((Untyped.RWCtx m s)) => (PromisedAnswer'Op (Message.MutMsg s)) -> (m ())
 set_PromisedAnswer'Op'noop (PromisedAnswer'Op'newtype_ struct) = (do
@@ -1378,8 +1399,6 @@
 set_PromisedAnswer'Op'unknown' (PromisedAnswer'Op'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 0 0 0)
 newtype ThirdPartyCapDescriptor msg
     = ThirdPartyCapDescriptor'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg ThirdPartyCapDescriptor) where
-    tMsg f (ThirdPartyCapDescriptor'newtype_ s) = (ThirdPartyCapDescriptor'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (ThirdPartyCapDescriptor msg)) where
     fromStruct struct = (Std_.pure (ThirdPartyCapDescriptor'newtype_ struct))
 instance (Classes.ToStruct msg (ThirdPartyCapDescriptor msg)) where
@@ -1408,12 +1427,14 @@
 instance (Basics.MutListElem s (ThirdPartyCapDescriptor (Message.MutMsg s))) where
     setIndex (ThirdPartyCapDescriptor'newtype_ elt) i (ThirdPartyCapDescriptor'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (ThirdPartyCapDescriptor'List_ <$> (Untyped.allocCompositeList msg 1 1 len))
-get_ThirdPartyCapDescriptor'id :: ((Untyped.ReadCtx m msg)) => (ThirdPartyCapDescriptor msg) -> (m (Std_.Maybe (Untyped.Ptr msg)))
+get_ThirdPartyCapDescriptor'id :: ((Untyped.ReadCtx m msg)
+                                  ,(Classes.FromPtr msg (Std_.Maybe (Untyped.Ptr msg)))) => (ThirdPartyCapDescriptor msg) -> (m (Std_.Maybe (Untyped.Ptr msg)))
 get_ThirdPartyCapDescriptor'id (ThirdPartyCapDescriptor'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_ThirdPartyCapDescriptor'id :: ((Untyped.RWCtx m s)) => (ThirdPartyCapDescriptor (Message.MutMsg s)) -> (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))) -> (m ())
+set_ThirdPartyCapDescriptor'id :: ((Untyped.RWCtx m s)
+                                  ,(Classes.ToPtr s (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))))) => (ThirdPartyCapDescriptor (Message.MutMsg s)) -> (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))) -> (m ())
 set_ThirdPartyCapDescriptor'id (ThirdPartyCapDescriptor'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -1426,8 +1447,6 @@
 set_ThirdPartyCapDescriptor'vineId (ThirdPartyCapDescriptor'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word32) 0 0 0)
 newtype Exception msg
     = Exception'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Exception) where
-    tMsg f (Exception'newtype_ s) = (Exception'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Exception msg)) where
     fromStruct struct = (Std_.pure (Exception'newtype_ struct))
 instance (Classes.ToStruct msg (Exception msg)) where
@@ -1456,12 +1475,14 @@
 instance (Basics.MutListElem s (Exception (Message.MutMsg s))) where
     setIndex (Exception'newtype_ elt) i (Exception'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Exception'List_ <$> (Untyped.allocCompositeList msg 1 1 len))
-get_Exception'reason :: ((Untyped.ReadCtx m msg)) => (Exception msg) -> (m (Basics.Text msg))
+get_Exception'reason :: ((Untyped.ReadCtx m msg)
+                        ,(Classes.FromPtr msg (Basics.Text msg))) => (Exception msg) -> (m (Basics.Text msg))
 get_Exception'reason (Exception'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Exception'reason :: ((Untyped.RWCtx m s)) => (Exception (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
+set_Exception'reason :: ((Untyped.RWCtx m s)
+                        ,(Classes.ToPtr s (Basics.Text (Message.MutMsg s)))) => (Exception (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
 set_Exception'reason (Exception'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
diff --git a/gen/lib/Capnp/Gen/Capnp/Rpc/Pure.hs b/gen/lib/Capnp/Gen/Capnp/Rpc/Pure.hs
--- a/gen/lib/Capnp/Gen/Capnp/Rpc/Pure.hs
+++ b/gen/lib/Capnp/Gen/Capnp/Rpc/Pure.hs
@@ -2,9 +2,11 @@
 {-# LANGUAGE DuplicateRecordFields #-}
 {-# LANGUAGE FlexibleContexts #-}
 {-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE FunctionalDependencies #-}
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE UndecidableInstances #-}
 {-# OPTIONS_GHC -Wno-unused-imports #-}
 {-# OPTIONS_GHC -Wno-dodgy-exports #-}
 {-# OPTIONS_GHC -Wno-unused-matches #-}
@@ -69,12 +71,12 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Message) where
+instance (Default.Default (Message)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Message) where
+instance (Classes.FromStruct Message.ConstMsg (Message)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Message) where
-    type Cerial msg Message = (Capnp.Gen.ById.Xb312981b2552a250.Message msg)
+instance (Classes.Decerialize (Message)) where
+    type Cerial msg (Message) = (Capnp.Gen.ById.Xb312981b2552a250.Message msg)
     decerialize raw = (do
         raw <- (Capnp.Gen.ById.Xb312981b2552a250.get_Message' raw)
         case raw of
@@ -109,7 +111,7 @@
             (Capnp.Gen.ById.Xb312981b2552a250.Message'unknown' tag) ->
                 (Std_.pure (Message'unknown' tag))
         )
-instance (Classes.Marshal Message) where
+instance (Classes.Marshal s (Message)) where
     marshalInto raw_ value_ = case value_ of
         (Message'unimplemented arg_) ->
             ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.Xb312981b2552a250.set_Message'unimplemented raw_))
@@ -141,20 +143,20 @@
             ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.Xb312981b2552a250.set_Message'disembargo raw_))
         (Message'unknown' tag) ->
             (Capnp.Gen.ById.Xb312981b2552a250.set_Message'unknown' raw_ tag)
-instance (Classes.Cerialize Message)
-instance (Classes.Cerialize (V.Vector Message)) where
+instance (Classes.Cerialize s (Message))
+instance (Classes.Cerialize s (V.Vector (Message))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Message))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Message)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Message)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Message))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Message))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Message)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Message)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Message))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Message))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Message)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Message)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Message))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Bootstrap 
     = Bootstrap 
@@ -163,15 +165,15 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Bootstrap) where
+instance (Default.Default (Bootstrap)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Bootstrap) where
+instance (Classes.FromStruct Message.ConstMsg (Bootstrap)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Bootstrap) where
-    type Cerial msg Bootstrap = (Capnp.Gen.ById.Xb312981b2552a250.Bootstrap msg)
+instance (Classes.Decerialize (Bootstrap)) where
+    type Cerial msg (Bootstrap) = (Capnp.Gen.ById.Xb312981b2552a250.Bootstrap msg)
     decerialize raw = (Bootstrap <$> (Capnp.Gen.ById.Xb312981b2552a250.get_Bootstrap'questionId raw)
                                  <*> ((Capnp.Gen.ById.Xb312981b2552a250.get_Bootstrap'deprecatedObjectId raw) >>= Classes.decerialize))
-instance (Classes.Marshal Bootstrap) where
+instance (Classes.Marshal s (Bootstrap)) where
     marshalInto raw_ value_ = case value_ of
         Bootstrap{..} ->
             (do
@@ -179,20 +181,20 @@
                 ((Classes.cerialize (Untyped.message raw_) deprecatedObjectId) >>= (Capnp.Gen.ById.Xb312981b2552a250.set_Bootstrap'deprecatedObjectId raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Bootstrap)
-instance (Classes.Cerialize (V.Vector Bootstrap)) where
+instance (Classes.Cerialize s (Bootstrap))
+instance (Classes.Cerialize s (V.Vector (Bootstrap))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Bootstrap))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Bootstrap)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Bootstrap)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Bootstrap))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Bootstrap))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Bootstrap)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Bootstrap)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Bootstrap))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Bootstrap))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Bootstrap)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Bootstrap)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Bootstrap))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Call 
     = Call 
@@ -206,12 +208,12 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Call) where
+instance (Default.Default (Call)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Call) where
+instance (Classes.FromStruct Message.ConstMsg (Call)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Call) where
-    type Cerial msg Call = (Capnp.Gen.ById.Xb312981b2552a250.Call msg)
+instance (Classes.Decerialize (Call)) where
+    type Cerial msg (Call) = (Capnp.Gen.ById.Xb312981b2552a250.Call msg)
     decerialize raw = (Call <$> (Capnp.Gen.ById.Xb312981b2552a250.get_Call'questionId raw)
                             <*> ((Capnp.Gen.ById.Xb312981b2552a250.get_Call'target raw) >>= Classes.decerialize)
                             <*> (Capnp.Gen.ById.Xb312981b2552a250.get_Call'interfaceId raw)
@@ -219,7 +221,7 @@
                             <*> ((Capnp.Gen.ById.Xb312981b2552a250.get_Call'params raw) >>= Classes.decerialize)
                             <*> ((Capnp.Gen.ById.Xb312981b2552a250.get_Call'sendResultsTo raw) >>= Classes.decerialize)
                             <*> (Capnp.Gen.ById.Xb312981b2552a250.get_Call'allowThirdPartyTailCall raw))
-instance (Classes.Marshal Call) where
+instance (Classes.Marshal s (Call)) where
     marshalInto raw_ value_ = case value_ of
         Call{..} ->
             (do
@@ -235,20 +237,20 @@
                 (Capnp.Gen.ById.Xb312981b2552a250.set_Call'allowThirdPartyTailCall raw_ allowThirdPartyTailCall)
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Call)
-instance (Classes.Cerialize (V.Vector Call)) where
+instance (Classes.Cerialize s (Call))
+instance (Classes.Cerialize s (V.Vector (Call))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Call))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Call)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Call)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Call))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Call))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Call)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Call)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Call))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Call))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Call)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Call)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Call))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Call'sendResultsTo 
     = Call'sendResultsTo'caller 
@@ -258,12 +260,12 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Call'sendResultsTo) where
+instance (Default.Default (Call'sendResultsTo)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Call'sendResultsTo) where
+instance (Classes.FromStruct Message.ConstMsg (Call'sendResultsTo)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Call'sendResultsTo) where
-    type Cerial msg Call'sendResultsTo = (Capnp.Gen.ById.Xb312981b2552a250.Call'sendResultsTo msg)
+instance (Classes.Decerialize (Call'sendResultsTo)) where
+    type Cerial msg (Call'sendResultsTo) = (Capnp.Gen.ById.Xb312981b2552a250.Call'sendResultsTo msg)
     decerialize raw = (do
         raw <- (Capnp.Gen.ById.Xb312981b2552a250.get_Call'sendResultsTo' raw)
         case raw of
@@ -276,7 +278,7 @@
             (Capnp.Gen.ById.Xb312981b2552a250.Call'sendResultsTo'unknown' tag) ->
                 (Std_.pure (Call'sendResultsTo'unknown' tag))
         )
-instance (Classes.Marshal Call'sendResultsTo) where
+instance (Classes.Marshal s (Call'sendResultsTo)) where
     marshalInto raw_ value_ = case value_ of
         (Call'sendResultsTo'caller) ->
             (Capnp.Gen.ById.Xb312981b2552a250.set_Call'sendResultsTo'caller raw_)
@@ -294,16 +296,16 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Return) where
+instance (Default.Default (Return)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Return) where
+instance (Classes.FromStruct Message.ConstMsg (Return)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Return) where
-    type Cerial msg Return = (Capnp.Gen.ById.Xb312981b2552a250.Return msg)
+instance (Classes.Decerialize (Return)) where
+    type Cerial msg (Return) = (Capnp.Gen.ById.Xb312981b2552a250.Return msg)
     decerialize raw = (Return <$> (Capnp.Gen.ById.Xb312981b2552a250.get_Return'answerId raw)
                               <*> (Capnp.Gen.ById.Xb312981b2552a250.get_Return'releaseParamCaps raw)
                               <*> (Classes.decerialize raw))
-instance (Classes.Marshal Return) where
+instance (Classes.Marshal s (Return)) where
     marshalInto raw_ value_ = case value_ of
         Return{..} ->
             (do
@@ -314,20 +316,20 @@
                     )
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Return)
-instance (Classes.Cerialize (V.Vector Return)) where
+instance (Classes.Cerialize s (Return))
+instance (Classes.Cerialize s (V.Vector (Return))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Return))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Return)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Return)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Return))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Return))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Return)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Return)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Return))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Return))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Return)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Return)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Return))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Return' 
     = Return'results Payload
@@ -340,12 +342,12 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Return') where
+instance (Default.Default (Return')) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Return') where
+instance (Classes.FromStruct Message.ConstMsg (Return')) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Return') where
-    type Cerial msg Return' = (Capnp.Gen.ById.Xb312981b2552a250.Return msg)
+instance (Classes.Decerialize (Return')) where
+    type Cerial msg (Return') = (Capnp.Gen.ById.Xb312981b2552a250.Return msg)
     decerialize raw = (do
         raw <- (Capnp.Gen.ById.Xb312981b2552a250.get_Return' raw)
         case raw of
@@ -364,7 +366,7 @@
             (Capnp.Gen.ById.Xb312981b2552a250.Return'unknown' tag) ->
                 (Std_.pure (Return'unknown' tag))
         )
-instance (Classes.Marshal Return') where
+instance (Classes.Marshal s (Return')) where
     marshalInto raw_ value_ = case value_ of
         (Return'results arg_) ->
             ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.Xb312981b2552a250.set_Return'results raw_))
@@ -387,15 +389,15 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Finish) where
+instance (Default.Default (Finish)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Finish) where
+instance (Classes.FromStruct Message.ConstMsg (Finish)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Finish) where
-    type Cerial msg Finish = (Capnp.Gen.ById.Xb312981b2552a250.Finish msg)
+instance (Classes.Decerialize (Finish)) where
+    type Cerial msg (Finish) = (Capnp.Gen.ById.Xb312981b2552a250.Finish msg)
     decerialize raw = (Finish <$> (Capnp.Gen.ById.Xb312981b2552a250.get_Finish'questionId raw)
                               <*> (Capnp.Gen.ById.Xb312981b2552a250.get_Finish'releaseResultCaps raw))
-instance (Classes.Marshal Finish) where
+instance (Classes.Marshal s (Finish)) where
     marshalInto raw_ value_ = case value_ of
         Finish{..} ->
             (do
@@ -403,20 +405,20 @@
                 (Capnp.Gen.ById.Xb312981b2552a250.set_Finish'releaseResultCaps raw_ releaseResultCaps)
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Finish)
-instance (Classes.Cerialize (V.Vector Finish)) where
+instance (Classes.Cerialize s (Finish))
+instance (Classes.Cerialize s (V.Vector (Finish))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Finish))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Finish)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Finish)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Finish))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Finish))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Finish)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Finish)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Finish))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Finish))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Finish)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Finish)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Finish))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Resolve 
     = Resolve 
@@ -425,15 +427,15 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Resolve) where
+instance (Default.Default (Resolve)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Resolve) where
+instance (Classes.FromStruct Message.ConstMsg (Resolve)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Resolve) where
-    type Cerial msg Resolve = (Capnp.Gen.ById.Xb312981b2552a250.Resolve msg)
+instance (Classes.Decerialize (Resolve)) where
+    type Cerial msg (Resolve) = (Capnp.Gen.ById.Xb312981b2552a250.Resolve msg)
     decerialize raw = (Resolve <$> (Capnp.Gen.ById.Xb312981b2552a250.get_Resolve'promiseId raw)
                                <*> (Classes.decerialize raw))
-instance (Classes.Marshal Resolve) where
+instance (Classes.Marshal s (Resolve)) where
     marshalInto raw_ value_ = case value_ of
         Resolve{..} ->
             (do
@@ -443,20 +445,20 @@
                     )
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Resolve)
-instance (Classes.Cerialize (V.Vector Resolve)) where
+instance (Classes.Cerialize s (Resolve))
+instance (Classes.Cerialize s (V.Vector (Resolve))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Resolve))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Resolve)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Resolve)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Resolve))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Resolve))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Resolve)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Resolve)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Resolve))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Resolve))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Resolve)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Resolve)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Resolve))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Resolve' 
     = Resolve'cap CapDescriptor
@@ -465,12 +467,12 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Resolve') where
+instance (Default.Default (Resolve')) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Resolve') where
+instance (Classes.FromStruct Message.ConstMsg (Resolve')) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Resolve') where
-    type Cerial msg Resolve' = (Capnp.Gen.ById.Xb312981b2552a250.Resolve msg)
+instance (Classes.Decerialize (Resolve')) where
+    type Cerial msg (Resolve') = (Capnp.Gen.ById.Xb312981b2552a250.Resolve msg)
     decerialize raw = (do
         raw <- (Capnp.Gen.ById.Xb312981b2552a250.get_Resolve' raw)
         case raw of
@@ -481,7 +483,7 @@
             (Capnp.Gen.ById.Xb312981b2552a250.Resolve'unknown' tag) ->
                 (Std_.pure (Resolve'unknown' tag))
         )
-instance (Classes.Marshal Resolve') where
+instance (Classes.Marshal s (Resolve')) where
     marshalInto raw_ value_ = case value_ of
         (Resolve'cap arg_) ->
             ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.Xb312981b2552a250.set_Resolve'cap raw_))
@@ -496,15 +498,15 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Release) where
+instance (Default.Default (Release)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Release) where
+instance (Classes.FromStruct Message.ConstMsg (Release)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Release) where
-    type Cerial msg Release = (Capnp.Gen.ById.Xb312981b2552a250.Release msg)
+instance (Classes.Decerialize (Release)) where
+    type Cerial msg (Release) = (Capnp.Gen.ById.Xb312981b2552a250.Release msg)
     decerialize raw = (Release <$> (Capnp.Gen.ById.Xb312981b2552a250.get_Release'id raw)
                                <*> (Capnp.Gen.ById.Xb312981b2552a250.get_Release'referenceCount raw))
-instance (Classes.Marshal Release) where
+instance (Classes.Marshal s (Release)) where
     marshalInto raw_ value_ = case value_ of
         Release{..} ->
             (do
@@ -512,20 +514,20 @@
                 (Capnp.Gen.ById.Xb312981b2552a250.set_Release'referenceCount raw_ referenceCount)
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Release)
-instance (Classes.Cerialize (V.Vector Release)) where
+instance (Classes.Cerialize s (Release))
+instance (Classes.Cerialize s (V.Vector (Release))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Release))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Release)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Release)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Release))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Release))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Release)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Release)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Release))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Release))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Release)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Release)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Release))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Disembargo 
     = Disembargo 
@@ -534,15 +536,15 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Disembargo) where
+instance (Default.Default (Disembargo)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Disembargo) where
+instance (Classes.FromStruct Message.ConstMsg (Disembargo)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Disembargo) where
-    type Cerial msg Disembargo = (Capnp.Gen.ById.Xb312981b2552a250.Disembargo msg)
+instance (Classes.Decerialize (Disembargo)) where
+    type Cerial msg (Disembargo) = (Capnp.Gen.ById.Xb312981b2552a250.Disembargo msg)
     decerialize raw = (Disembargo <$> ((Capnp.Gen.ById.Xb312981b2552a250.get_Disembargo'target raw) >>= Classes.decerialize)
                                   <*> ((Capnp.Gen.ById.Xb312981b2552a250.get_Disembargo'context raw) >>= Classes.decerialize))
-instance (Classes.Marshal Disembargo) where
+instance (Classes.Marshal s (Disembargo)) where
     marshalInto raw_ value_ = case value_ of
         Disembargo{..} ->
             (do
@@ -553,20 +555,20 @@
                     )
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Disembargo)
-instance (Classes.Cerialize (V.Vector Disembargo)) where
+instance (Classes.Cerialize s (Disembargo))
+instance (Classes.Cerialize s (V.Vector (Disembargo))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Disembargo))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Disembargo)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Disembargo)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Disembargo))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Disembargo))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Disembargo)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Disembargo)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Disembargo))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Disembargo))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Disembargo)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Disembargo)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Disembargo))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Disembargo'context 
     = Disembargo'context'senderLoopback Std_.Word32
@@ -577,12 +579,12 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Disembargo'context) where
+instance (Default.Default (Disembargo'context)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Disembargo'context) where
+instance (Classes.FromStruct Message.ConstMsg (Disembargo'context)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Disembargo'context) where
-    type Cerial msg Disembargo'context = (Capnp.Gen.ById.Xb312981b2552a250.Disembargo'context msg)
+instance (Classes.Decerialize (Disembargo'context)) where
+    type Cerial msg (Disembargo'context) = (Capnp.Gen.ById.Xb312981b2552a250.Disembargo'context msg)
     decerialize raw = (do
         raw <- (Capnp.Gen.ById.Xb312981b2552a250.get_Disembargo'context' raw)
         case raw of
@@ -597,7 +599,7 @@
             (Capnp.Gen.ById.Xb312981b2552a250.Disembargo'context'unknown' tag) ->
                 (Std_.pure (Disembargo'context'unknown' tag))
         )
-instance (Classes.Marshal Disembargo'context) where
+instance (Classes.Marshal s (Disembargo'context)) where
     marshalInto raw_ value_ = case value_ of
         (Disembargo'context'senderLoopback arg_) ->
             (Capnp.Gen.ById.Xb312981b2552a250.set_Disembargo'context'senderLoopback raw_ arg_)
@@ -617,16 +619,16 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Provide) where
+instance (Default.Default (Provide)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Provide) where
+instance (Classes.FromStruct Message.ConstMsg (Provide)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Provide) where
-    type Cerial msg Provide = (Capnp.Gen.ById.Xb312981b2552a250.Provide msg)
+instance (Classes.Decerialize (Provide)) where
+    type Cerial msg (Provide) = (Capnp.Gen.ById.Xb312981b2552a250.Provide msg)
     decerialize raw = (Provide <$> (Capnp.Gen.ById.Xb312981b2552a250.get_Provide'questionId raw)
                                <*> ((Capnp.Gen.ById.Xb312981b2552a250.get_Provide'target raw) >>= Classes.decerialize)
                                <*> ((Capnp.Gen.ById.Xb312981b2552a250.get_Provide'recipient raw) >>= Classes.decerialize))
-instance (Classes.Marshal Provide) where
+instance (Classes.Marshal s (Provide)) where
     marshalInto raw_ value_ = case value_ of
         Provide{..} ->
             (do
@@ -635,20 +637,20 @@
                 ((Classes.cerialize (Untyped.message raw_) recipient) >>= (Capnp.Gen.ById.Xb312981b2552a250.set_Provide'recipient raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Provide)
-instance (Classes.Cerialize (V.Vector Provide)) where
+instance (Classes.Cerialize s (Provide))
+instance (Classes.Cerialize s (V.Vector (Provide))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Provide))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Provide)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Provide)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Provide))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Provide))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Provide)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Provide)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Provide))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Provide))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Provide)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Provide)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Provide))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Accept 
     = Accept 
@@ -658,16 +660,16 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Accept) where
+instance (Default.Default (Accept)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Accept) where
+instance (Classes.FromStruct Message.ConstMsg (Accept)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Accept) where
-    type Cerial msg Accept = (Capnp.Gen.ById.Xb312981b2552a250.Accept msg)
+instance (Classes.Decerialize (Accept)) where
+    type Cerial msg (Accept) = (Capnp.Gen.ById.Xb312981b2552a250.Accept msg)
     decerialize raw = (Accept <$> (Capnp.Gen.ById.Xb312981b2552a250.get_Accept'questionId raw)
                               <*> ((Capnp.Gen.ById.Xb312981b2552a250.get_Accept'provision raw) >>= Classes.decerialize)
                               <*> (Capnp.Gen.ById.Xb312981b2552a250.get_Accept'embargo raw))
-instance (Classes.Marshal Accept) where
+instance (Classes.Marshal s (Accept)) where
     marshalInto raw_ value_ = case value_ of
         Accept{..} ->
             (do
@@ -676,20 +678,20 @@
                 (Capnp.Gen.ById.Xb312981b2552a250.set_Accept'embargo raw_ embargo)
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Accept)
-instance (Classes.Cerialize (V.Vector Accept)) where
+instance (Classes.Cerialize s (Accept))
+instance (Classes.Cerialize s (V.Vector (Accept))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Accept))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Accept)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Accept)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Accept))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Accept))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Accept)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Accept)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Accept))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Accept))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Accept)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Accept)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Accept))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Join 
     = Join 
@@ -699,16 +701,16 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Join) where
+instance (Default.Default (Join)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Join) where
+instance (Classes.FromStruct Message.ConstMsg (Join)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Join) where
-    type Cerial msg Join = (Capnp.Gen.ById.Xb312981b2552a250.Join msg)
+instance (Classes.Decerialize (Join)) where
+    type Cerial msg (Join) = (Capnp.Gen.ById.Xb312981b2552a250.Join msg)
     decerialize raw = (Join <$> (Capnp.Gen.ById.Xb312981b2552a250.get_Join'questionId raw)
                             <*> ((Capnp.Gen.ById.Xb312981b2552a250.get_Join'target raw) >>= Classes.decerialize)
                             <*> ((Capnp.Gen.ById.Xb312981b2552a250.get_Join'keyPart raw) >>= Classes.decerialize))
-instance (Classes.Marshal Join) where
+instance (Classes.Marshal s (Join)) where
     marshalInto raw_ value_ = case value_ of
         Join{..} ->
             (do
@@ -717,20 +719,20 @@
                 ((Classes.cerialize (Untyped.message raw_) keyPart) >>= (Capnp.Gen.ById.Xb312981b2552a250.set_Join'keyPart raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Join)
-instance (Classes.Cerialize (V.Vector Join)) where
+instance (Classes.Cerialize s (Join))
+instance (Classes.Cerialize s (V.Vector (Join))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Join))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Join)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Join)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Join))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Join))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Join)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Join)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Join))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Join))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Join)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Join)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Join))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data MessageTarget 
     = MessageTarget'importedCap Std_.Word32
@@ -739,12 +741,12 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default MessageTarget) where
+instance (Default.Default (MessageTarget)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg MessageTarget) where
+instance (Classes.FromStruct Message.ConstMsg (MessageTarget)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize MessageTarget) where
-    type Cerial msg MessageTarget = (Capnp.Gen.ById.Xb312981b2552a250.MessageTarget msg)
+instance (Classes.Decerialize (MessageTarget)) where
+    type Cerial msg (MessageTarget) = (Capnp.Gen.ById.Xb312981b2552a250.MessageTarget msg)
     decerialize raw = (do
         raw <- (Capnp.Gen.ById.Xb312981b2552a250.get_MessageTarget' raw)
         case raw of
@@ -755,7 +757,7 @@
             (Capnp.Gen.ById.Xb312981b2552a250.MessageTarget'unknown' tag) ->
                 (Std_.pure (MessageTarget'unknown' tag))
         )
-instance (Classes.Marshal MessageTarget) where
+instance (Classes.Marshal s (MessageTarget)) where
     marshalInto raw_ value_ = case value_ of
         (MessageTarget'importedCap arg_) ->
             (Capnp.Gen.ById.Xb312981b2552a250.set_MessageTarget'importedCap raw_ arg_)
@@ -763,20 +765,20 @@
             ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.Xb312981b2552a250.set_MessageTarget'promisedAnswer raw_))
         (MessageTarget'unknown' tag) ->
             (Capnp.Gen.ById.Xb312981b2552a250.set_MessageTarget'unknown' raw_ tag)
-instance (Classes.Cerialize MessageTarget)
-instance (Classes.Cerialize (V.Vector MessageTarget)) where
+instance (Classes.Cerialize s (MessageTarget))
+instance (Classes.Cerialize s (V.Vector (MessageTarget))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector MessageTarget))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (MessageTarget)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector MessageTarget)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (MessageTarget))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector MessageTarget))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (MessageTarget)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector MessageTarget)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (MessageTarget))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector MessageTarget))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (MessageTarget)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector MessageTarget)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (MessageTarget))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Payload 
     = Payload 
@@ -785,15 +787,15 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Payload) where
+instance (Default.Default (Payload)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Payload) where
+instance (Classes.FromStruct Message.ConstMsg (Payload)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Payload) where
-    type Cerial msg Payload = (Capnp.Gen.ById.Xb312981b2552a250.Payload msg)
+instance (Classes.Decerialize (Payload)) where
+    type Cerial msg (Payload) = (Capnp.Gen.ById.Xb312981b2552a250.Payload msg)
     decerialize raw = (Payload <$> ((Capnp.Gen.ById.Xb312981b2552a250.get_Payload'content raw) >>= Classes.decerialize)
                                <*> ((Capnp.Gen.ById.Xb312981b2552a250.get_Payload'capTable raw) >>= Classes.decerialize))
-instance (Classes.Marshal Payload) where
+instance (Classes.Marshal s (Payload)) where
     marshalInto raw_ value_ = case value_ of
         Payload{..} ->
             (do
@@ -801,20 +803,20 @@
                 ((Classes.cerialize (Untyped.message raw_) capTable) >>= (Capnp.Gen.ById.Xb312981b2552a250.set_Payload'capTable raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Payload)
-instance (Classes.Cerialize (V.Vector Payload)) where
+instance (Classes.Cerialize s (Payload))
+instance (Classes.Cerialize s (V.Vector (Payload))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Payload))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Payload)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Payload)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Payload))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Payload))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Payload)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Payload)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Payload))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Payload))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Payload)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Payload)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Payload))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data CapDescriptor 
     = CapDescriptor 
@@ -823,15 +825,15 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default CapDescriptor) where
+instance (Default.Default (CapDescriptor)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg CapDescriptor) where
+instance (Classes.FromStruct Message.ConstMsg (CapDescriptor)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize CapDescriptor) where
-    type Cerial msg CapDescriptor = (Capnp.Gen.ById.Xb312981b2552a250.CapDescriptor msg)
+instance (Classes.Decerialize (CapDescriptor)) where
+    type Cerial msg (CapDescriptor) = (Capnp.Gen.ById.Xb312981b2552a250.CapDescriptor msg)
     decerialize raw = (CapDescriptor <$> (Capnp.Gen.ById.Xb312981b2552a250.get_CapDescriptor'attachedFd raw)
                                      <*> (Classes.decerialize raw))
-instance (Classes.Marshal CapDescriptor) where
+instance (Classes.Marshal s (CapDescriptor)) where
     marshalInto raw_ value_ = case value_ of
         CapDescriptor{..} ->
             (do
@@ -841,20 +843,20 @@
                     )
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize CapDescriptor)
-instance (Classes.Cerialize (V.Vector CapDescriptor)) where
+instance (Classes.Cerialize s (CapDescriptor))
+instance (Classes.Cerialize s (V.Vector (CapDescriptor))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector CapDescriptor))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (CapDescriptor)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector CapDescriptor)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (CapDescriptor))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector CapDescriptor))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (CapDescriptor)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CapDescriptor)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CapDescriptor))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CapDescriptor))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CapDescriptor)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CapDescriptor)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CapDescriptor))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data CapDescriptor' 
     = CapDescriptor'none 
@@ -867,12 +869,12 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default CapDescriptor') where
+instance (Default.Default (CapDescriptor')) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg CapDescriptor') where
+instance (Classes.FromStruct Message.ConstMsg (CapDescriptor')) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize CapDescriptor') where
-    type Cerial msg CapDescriptor' = (Capnp.Gen.ById.Xb312981b2552a250.CapDescriptor msg)
+instance (Classes.Decerialize (CapDescriptor')) where
+    type Cerial msg (CapDescriptor') = (Capnp.Gen.ById.Xb312981b2552a250.CapDescriptor msg)
     decerialize raw = (do
         raw <- (Capnp.Gen.ById.Xb312981b2552a250.get_CapDescriptor' raw)
         case raw of
@@ -891,7 +893,7 @@
             (Capnp.Gen.ById.Xb312981b2552a250.CapDescriptor'unknown' tag) ->
                 (Std_.pure (CapDescriptor'unknown' tag))
         )
-instance (Classes.Marshal CapDescriptor') where
+instance (Classes.Marshal s (CapDescriptor')) where
     marshalInto raw_ value_ = case value_ of
         (CapDescriptor'none) ->
             (Capnp.Gen.ById.Xb312981b2552a250.set_CapDescriptor'none raw_)
@@ -914,15 +916,15 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default PromisedAnswer) where
+instance (Default.Default (PromisedAnswer)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg PromisedAnswer) where
+instance (Classes.FromStruct Message.ConstMsg (PromisedAnswer)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize PromisedAnswer) where
-    type Cerial msg PromisedAnswer = (Capnp.Gen.ById.Xb312981b2552a250.PromisedAnswer msg)
+instance (Classes.Decerialize (PromisedAnswer)) where
+    type Cerial msg (PromisedAnswer) = (Capnp.Gen.ById.Xb312981b2552a250.PromisedAnswer msg)
     decerialize raw = (PromisedAnswer <$> (Capnp.Gen.ById.Xb312981b2552a250.get_PromisedAnswer'questionId raw)
                                       <*> ((Capnp.Gen.ById.Xb312981b2552a250.get_PromisedAnswer'transform raw) >>= Classes.decerialize))
-instance (Classes.Marshal PromisedAnswer) where
+instance (Classes.Marshal s (PromisedAnswer)) where
     marshalInto raw_ value_ = case value_ of
         PromisedAnswer{..} ->
             (do
@@ -930,20 +932,20 @@
                 ((Classes.cerialize (Untyped.message raw_) transform) >>= (Capnp.Gen.ById.Xb312981b2552a250.set_PromisedAnswer'transform raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize PromisedAnswer)
-instance (Classes.Cerialize (V.Vector PromisedAnswer)) where
+instance (Classes.Cerialize s (PromisedAnswer))
+instance (Classes.Cerialize s (V.Vector (PromisedAnswer))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector PromisedAnswer))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (PromisedAnswer)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector PromisedAnswer)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (PromisedAnswer))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector PromisedAnswer))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (PromisedAnswer)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector PromisedAnswer)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (PromisedAnswer))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector PromisedAnswer))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (PromisedAnswer)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector PromisedAnswer)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (PromisedAnswer))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data PromisedAnswer'Op 
     = PromisedAnswer'Op'noop 
@@ -952,12 +954,12 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default PromisedAnswer'Op) where
+instance (Default.Default (PromisedAnswer'Op)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg PromisedAnswer'Op) where
+instance (Classes.FromStruct Message.ConstMsg (PromisedAnswer'Op)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize PromisedAnswer'Op) where
-    type Cerial msg PromisedAnswer'Op = (Capnp.Gen.ById.Xb312981b2552a250.PromisedAnswer'Op msg)
+instance (Classes.Decerialize (PromisedAnswer'Op)) where
+    type Cerial msg (PromisedAnswer'Op) = (Capnp.Gen.ById.Xb312981b2552a250.PromisedAnswer'Op msg)
     decerialize raw = (do
         raw <- (Capnp.Gen.ById.Xb312981b2552a250.get_PromisedAnswer'Op' raw)
         case raw of
@@ -968,7 +970,7 @@
             (Capnp.Gen.ById.Xb312981b2552a250.PromisedAnswer'Op'unknown' tag) ->
                 (Std_.pure (PromisedAnswer'Op'unknown' tag))
         )
-instance (Classes.Marshal PromisedAnswer'Op) where
+instance (Classes.Marshal s (PromisedAnswer'Op)) where
     marshalInto raw_ value_ = case value_ of
         (PromisedAnswer'Op'noop) ->
             (Capnp.Gen.ById.Xb312981b2552a250.set_PromisedAnswer'Op'noop raw_)
@@ -976,20 +978,20 @@
             (Capnp.Gen.ById.Xb312981b2552a250.set_PromisedAnswer'Op'getPointerField raw_ arg_)
         (PromisedAnswer'Op'unknown' tag) ->
             (Capnp.Gen.ById.Xb312981b2552a250.set_PromisedAnswer'Op'unknown' raw_ tag)
-instance (Classes.Cerialize PromisedAnswer'Op)
-instance (Classes.Cerialize (V.Vector PromisedAnswer'Op)) where
+instance (Classes.Cerialize s (PromisedAnswer'Op))
+instance (Classes.Cerialize s (V.Vector (PromisedAnswer'Op))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector PromisedAnswer'Op))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (PromisedAnswer'Op)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector PromisedAnswer'Op)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (PromisedAnswer'Op))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector PromisedAnswer'Op))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (PromisedAnswer'Op)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector PromisedAnswer'Op)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (PromisedAnswer'Op))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector PromisedAnswer'Op))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (PromisedAnswer'Op)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector PromisedAnswer'Op)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (PromisedAnswer'Op))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data ThirdPartyCapDescriptor 
     = ThirdPartyCapDescriptor 
@@ -998,15 +1000,15 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default ThirdPartyCapDescriptor) where
+instance (Default.Default (ThirdPartyCapDescriptor)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg ThirdPartyCapDescriptor) where
+instance (Classes.FromStruct Message.ConstMsg (ThirdPartyCapDescriptor)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize ThirdPartyCapDescriptor) where
-    type Cerial msg ThirdPartyCapDescriptor = (Capnp.Gen.ById.Xb312981b2552a250.ThirdPartyCapDescriptor msg)
+instance (Classes.Decerialize (ThirdPartyCapDescriptor)) where
+    type Cerial msg (ThirdPartyCapDescriptor) = (Capnp.Gen.ById.Xb312981b2552a250.ThirdPartyCapDescriptor msg)
     decerialize raw = (ThirdPartyCapDescriptor <$> ((Capnp.Gen.ById.Xb312981b2552a250.get_ThirdPartyCapDescriptor'id raw) >>= Classes.decerialize)
                                                <*> (Capnp.Gen.ById.Xb312981b2552a250.get_ThirdPartyCapDescriptor'vineId raw))
-instance (Classes.Marshal ThirdPartyCapDescriptor) where
+instance (Classes.Marshal s (ThirdPartyCapDescriptor)) where
     marshalInto raw_ value_ = case value_ of
         ThirdPartyCapDescriptor{..} ->
             (do
@@ -1014,20 +1016,20 @@
                 (Capnp.Gen.ById.Xb312981b2552a250.set_ThirdPartyCapDescriptor'vineId raw_ vineId)
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize ThirdPartyCapDescriptor)
-instance (Classes.Cerialize (V.Vector ThirdPartyCapDescriptor)) where
+instance (Classes.Cerialize s (ThirdPartyCapDescriptor))
+instance (Classes.Cerialize s (V.Vector (ThirdPartyCapDescriptor))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector ThirdPartyCapDescriptor))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (ThirdPartyCapDescriptor)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector ThirdPartyCapDescriptor)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (ThirdPartyCapDescriptor))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector ThirdPartyCapDescriptor))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (ThirdPartyCapDescriptor)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector ThirdPartyCapDescriptor)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (ThirdPartyCapDescriptor))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector ThirdPartyCapDescriptor))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (ThirdPartyCapDescriptor)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector ThirdPartyCapDescriptor)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (ThirdPartyCapDescriptor))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Exception 
     = Exception 
@@ -1038,17 +1040,17 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Exception) where
+instance (Default.Default (Exception)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Exception) where
+instance (Classes.FromStruct Message.ConstMsg (Exception)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Exception) where
-    type Cerial msg Exception = (Capnp.Gen.ById.Xb312981b2552a250.Exception msg)
+instance (Classes.Decerialize (Exception)) where
+    type Cerial msg (Exception) = (Capnp.Gen.ById.Xb312981b2552a250.Exception msg)
     decerialize raw = (Exception <$> ((Capnp.Gen.ById.Xb312981b2552a250.get_Exception'reason raw) >>= Classes.decerialize)
                                  <*> (Capnp.Gen.ById.Xb312981b2552a250.get_Exception'obsoleteIsCallersFault raw)
                                  <*> (Capnp.Gen.ById.Xb312981b2552a250.get_Exception'obsoleteDurability raw)
                                  <*> (Capnp.Gen.ById.Xb312981b2552a250.get_Exception'type_ raw))
-instance (Classes.Marshal Exception) where
+instance (Classes.Marshal s (Exception)) where
     marshalInto raw_ value_ = case value_ of
         Exception{..} ->
             (do
@@ -1058,35 +1060,35 @@
                 (Capnp.Gen.ById.Xb312981b2552a250.set_Exception'type_ raw_ type_)
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Exception)
-instance (Classes.Cerialize (V.Vector Exception)) where
+instance (Classes.Cerialize s (Exception))
+instance (Classes.Cerialize s (V.Vector (Exception))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Exception))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Exception)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Exception)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Exception))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Exception))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Exception)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Exception)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Exception))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Exception))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Exception)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Exception)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Exception))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 instance (Classes.Decerialize Capnp.Gen.ById.Xb312981b2552a250.Exception'Type) where
     type Cerial msg Capnp.Gen.ById.Xb312981b2552a250.Exception'Type = Capnp.Gen.ById.Xb312981b2552a250.Exception'Type
     decerialize  = Std_.pure
-instance (Classes.Cerialize Capnp.Gen.ById.Xb312981b2552a250.Exception'Type) where
+instance (Classes.Cerialize s Capnp.Gen.ById.Xb312981b2552a250.Exception'Type) where
     cerialize _ = Std_.pure
-instance (Classes.Cerialize (V.Vector Capnp.Gen.ById.Xb312981b2552a250.Exception'Type)) where
+instance (Classes.Cerialize s (V.Vector Capnp.Gen.ById.Xb312981b2552a250.Exception'Type)) where
     cerialize  = Classes.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector Capnp.Gen.ById.Xb312981b2552a250.Exception'Type))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector Capnp.Gen.ById.Xb312981b2552a250.Exception'Type))) where
     cerialize  = Classes.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.Xb312981b2552a250.Exception'Type)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.Xb312981b2552a250.Exception'Type)))) where
     cerialize  = Classes.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.Xb312981b2552a250.Exception'Type))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.Xb312981b2552a250.Exception'Type))))) where
     cerialize  = Classes.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.Xb312981b2552a250.Exception'Type)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.Xb312981b2552a250.Exception'Type)))))) where
     cerialize  = Classes.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.Xb312981b2552a250.Exception'Type))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.Xb312981b2552a250.Exception'Type))))))) where
     cerialize  = Classes.cerializeBasicVec
diff --git a/gen/lib/Capnp/Gen/Capnp/RpcTwoparty.hs b/gen/lib/Capnp/Gen/Capnp/RpcTwoparty.hs
--- a/gen/lib/Capnp/Gen/Capnp/RpcTwoparty.hs
+++ b/gen/lib/Capnp/Gen/Capnp/RpcTwoparty.hs
@@ -56,8 +56,6 @@
     newList msg size = (Side'List_ <$> (Untyped.allocList16 msg size))
 newtype VatId msg
     = VatId'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg VatId) where
-    tMsg f (VatId'newtype_ s) = (VatId'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (VatId msg)) where
     fromStruct struct = (Std_.pure (VatId'newtype_ struct))
 instance (Classes.ToStruct msg (VatId msg)) where
@@ -92,8 +90,6 @@
 set_VatId'side (VatId'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 0 0 0)
 newtype ProvisionId msg
     = ProvisionId'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg ProvisionId) where
-    tMsg f (ProvisionId'newtype_ s) = (ProvisionId'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (ProvisionId msg)) where
     fromStruct struct = (Std_.pure (ProvisionId'newtype_ struct))
 instance (Classes.ToStruct msg (ProvisionId msg)) where
@@ -128,8 +124,6 @@
 set_ProvisionId'joinId (ProvisionId'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word32) 0 0 0)
 newtype RecipientId msg
     = RecipientId'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg RecipientId) where
-    tMsg f (RecipientId'newtype_ s) = (RecipientId'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (RecipientId msg)) where
     fromStruct struct = (Std_.pure (RecipientId'newtype_ struct))
 instance (Classes.ToStruct msg (RecipientId msg)) where
@@ -160,8 +154,6 @@
     newList msg len = (RecipientId'List_ <$> (Untyped.allocCompositeList msg 0 0 len))
 newtype ThirdPartyCapId msg
     = ThirdPartyCapId'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg ThirdPartyCapId) where
-    tMsg f (ThirdPartyCapId'newtype_ s) = (ThirdPartyCapId'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (ThirdPartyCapId msg)) where
     fromStruct struct = (Std_.pure (ThirdPartyCapId'newtype_ struct))
 instance (Classes.ToStruct msg (ThirdPartyCapId msg)) where
@@ -192,8 +184,6 @@
     newList msg len = (ThirdPartyCapId'List_ <$> (Untyped.allocCompositeList msg 0 0 len))
 newtype JoinKeyPart msg
     = JoinKeyPart'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg JoinKeyPart) where
-    tMsg f (JoinKeyPart'newtype_ s) = (JoinKeyPart'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (JoinKeyPart msg)) where
     fromStruct struct = (Std_.pure (JoinKeyPart'newtype_ struct))
 instance (Classes.ToStruct msg (JoinKeyPart msg)) where
@@ -236,8 +226,6 @@
 set_JoinKeyPart'partNum (JoinKeyPart'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 0 48 0)
 newtype JoinResult msg
     = JoinResult'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg JoinResult) where
-    tMsg f (JoinResult'newtype_ s) = (JoinResult'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (JoinResult msg)) where
     fromStruct struct = (Std_.pure (JoinResult'newtype_ struct))
 instance (Classes.ToStruct msg (JoinResult msg)) where
@@ -274,12 +262,14 @@
 get_JoinResult'succeeded (JoinResult'newtype_ struct) = (GenHelpers.getWordField struct 0 32 0)
 set_JoinResult'succeeded :: ((Untyped.RWCtx m s)) => (JoinResult (Message.MutMsg s)) -> Std_.Bool -> (m ())
 set_JoinResult'succeeded (JoinResult'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word1) 0 32 0)
-get_JoinResult'cap :: ((Untyped.ReadCtx m msg)) => (JoinResult msg) -> (m (Std_.Maybe (Untyped.Ptr msg)))
+get_JoinResult'cap :: ((Untyped.ReadCtx m msg)
+                      ,(Classes.FromPtr msg (Std_.Maybe (Untyped.Ptr msg)))) => (JoinResult msg) -> (m (Std_.Maybe (Untyped.Ptr msg)))
 get_JoinResult'cap (JoinResult'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_JoinResult'cap :: ((Untyped.RWCtx m s)) => (JoinResult (Message.MutMsg s)) -> (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))) -> (m ())
+set_JoinResult'cap :: ((Untyped.RWCtx m s)
+                      ,(Classes.ToPtr s (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))))) => (JoinResult (Message.MutMsg s)) -> (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))) -> (m ())
 set_JoinResult'cap (JoinResult'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
diff --git a/gen/lib/Capnp/Gen/Capnp/RpcTwoparty/Pure.hs b/gen/lib/Capnp/Gen/Capnp/RpcTwoparty/Pure.hs
--- a/gen/lib/Capnp/Gen/Capnp/RpcTwoparty/Pure.hs
+++ b/gen/lib/Capnp/Gen/Capnp/RpcTwoparty/Pure.hs
@@ -2,9 +2,11 @@
 {-# LANGUAGE DuplicateRecordFields #-}
 {-# LANGUAGE FlexibleContexts #-}
 {-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE FunctionalDependencies #-}
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE UndecidableInstances #-}
 {-# OPTIONS_GHC -Wno-unused-imports #-}
 {-# OPTIONS_GHC -Wno-dodgy-exports #-}
 {-# OPTIONS_GHC -Wno-unused-matches #-}
@@ -39,34 +41,34 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default VatId) where
+instance (Default.Default (VatId)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg VatId) where
+instance (Classes.FromStruct Message.ConstMsg (VatId)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize VatId) where
-    type Cerial msg VatId = (Capnp.Gen.ById.Xa184c7885cdaf2a1.VatId msg)
+instance (Classes.Decerialize (VatId)) where
+    type Cerial msg (VatId) = (Capnp.Gen.ById.Xa184c7885cdaf2a1.VatId msg)
     decerialize raw = (VatId <$> (Capnp.Gen.ById.Xa184c7885cdaf2a1.get_VatId'side raw))
-instance (Classes.Marshal VatId) where
+instance (Classes.Marshal s (VatId)) where
     marshalInto raw_ value_ = case value_ of
         VatId{..} ->
             (do
                 (Capnp.Gen.ById.Xa184c7885cdaf2a1.set_VatId'side raw_ side)
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize VatId)
-instance (Classes.Cerialize (V.Vector VatId)) where
+instance (Classes.Cerialize s (VatId))
+instance (Classes.Cerialize s (V.Vector (VatId))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector VatId))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (VatId)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector VatId)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (VatId))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector VatId))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (VatId)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector VatId)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (VatId))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector VatId))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (VatId)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector VatId)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (VatId))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data ProvisionId 
     = ProvisionId 
@@ -74,34 +76,34 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default ProvisionId) where
+instance (Default.Default (ProvisionId)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg ProvisionId) where
+instance (Classes.FromStruct Message.ConstMsg (ProvisionId)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize ProvisionId) where
-    type Cerial msg ProvisionId = (Capnp.Gen.ById.Xa184c7885cdaf2a1.ProvisionId msg)
+instance (Classes.Decerialize (ProvisionId)) where
+    type Cerial msg (ProvisionId) = (Capnp.Gen.ById.Xa184c7885cdaf2a1.ProvisionId msg)
     decerialize raw = (ProvisionId <$> (Capnp.Gen.ById.Xa184c7885cdaf2a1.get_ProvisionId'joinId raw))
-instance (Classes.Marshal ProvisionId) where
+instance (Classes.Marshal s (ProvisionId)) where
     marshalInto raw_ value_ = case value_ of
         ProvisionId{..} ->
             (do
                 (Capnp.Gen.ById.Xa184c7885cdaf2a1.set_ProvisionId'joinId raw_ joinId)
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize ProvisionId)
-instance (Classes.Cerialize (V.Vector ProvisionId)) where
+instance (Classes.Cerialize s (ProvisionId))
+instance (Classes.Cerialize s (V.Vector (ProvisionId))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector ProvisionId))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (ProvisionId)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector ProvisionId)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (ProvisionId))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector ProvisionId))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (ProvisionId)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector ProvisionId)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (ProvisionId))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector ProvisionId))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (ProvisionId)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector ProvisionId)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (ProvisionId))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data RecipientId 
     = RecipientId 
@@ -109,33 +111,33 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default RecipientId) where
+instance (Default.Default (RecipientId)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg RecipientId) where
+instance (Classes.FromStruct Message.ConstMsg (RecipientId)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize RecipientId) where
-    type Cerial msg RecipientId = (Capnp.Gen.ById.Xa184c7885cdaf2a1.RecipientId msg)
+instance (Classes.Decerialize (RecipientId)) where
+    type Cerial msg (RecipientId) = (Capnp.Gen.ById.Xa184c7885cdaf2a1.RecipientId msg)
     decerialize raw = (Std_.pure RecipientId)
-instance (Classes.Marshal RecipientId) where
+instance (Classes.Marshal s (RecipientId)) where
     marshalInto raw_ value_ = case value_ of
         (RecipientId) ->
             (do
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize RecipientId)
-instance (Classes.Cerialize (V.Vector RecipientId)) where
+instance (Classes.Cerialize s (RecipientId))
+instance (Classes.Cerialize s (V.Vector (RecipientId))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector RecipientId))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (RecipientId)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector RecipientId)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (RecipientId))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector RecipientId))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (RecipientId)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector RecipientId)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (RecipientId))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector RecipientId))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (RecipientId)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector RecipientId)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (RecipientId))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data ThirdPartyCapId 
     = ThirdPartyCapId 
@@ -143,33 +145,33 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default ThirdPartyCapId) where
+instance (Default.Default (ThirdPartyCapId)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg ThirdPartyCapId) where
+instance (Classes.FromStruct Message.ConstMsg (ThirdPartyCapId)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize ThirdPartyCapId) where
-    type Cerial msg ThirdPartyCapId = (Capnp.Gen.ById.Xa184c7885cdaf2a1.ThirdPartyCapId msg)
+instance (Classes.Decerialize (ThirdPartyCapId)) where
+    type Cerial msg (ThirdPartyCapId) = (Capnp.Gen.ById.Xa184c7885cdaf2a1.ThirdPartyCapId msg)
     decerialize raw = (Std_.pure ThirdPartyCapId)
-instance (Classes.Marshal ThirdPartyCapId) where
+instance (Classes.Marshal s (ThirdPartyCapId)) where
     marshalInto raw_ value_ = case value_ of
         (ThirdPartyCapId) ->
             (do
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize ThirdPartyCapId)
-instance (Classes.Cerialize (V.Vector ThirdPartyCapId)) where
+instance (Classes.Cerialize s (ThirdPartyCapId))
+instance (Classes.Cerialize s (V.Vector (ThirdPartyCapId))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector ThirdPartyCapId))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (ThirdPartyCapId)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector ThirdPartyCapId)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (ThirdPartyCapId))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector ThirdPartyCapId))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (ThirdPartyCapId)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector ThirdPartyCapId)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (ThirdPartyCapId))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector ThirdPartyCapId))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (ThirdPartyCapId)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector ThirdPartyCapId)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (ThirdPartyCapId))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data JoinKeyPart 
     = JoinKeyPart 
@@ -179,16 +181,16 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default JoinKeyPart) where
+instance (Default.Default (JoinKeyPart)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg JoinKeyPart) where
+instance (Classes.FromStruct Message.ConstMsg (JoinKeyPart)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize JoinKeyPart) where
-    type Cerial msg JoinKeyPart = (Capnp.Gen.ById.Xa184c7885cdaf2a1.JoinKeyPart msg)
+instance (Classes.Decerialize (JoinKeyPart)) where
+    type Cerial msg (JoinKeyPart) = (Capnp.Gen.ById.Xa184c7885cdaf2a1.JoinKeyPart msg)
     decerialize raw = (JoinKeyPart <$> (Capnp.Gen.ById.Xa184c7885cdaf2a1.get_JoinKeyPart'joinId raw)
                                    <*> (Capnp.Gen.ById.Xa184c7885cdaf2a1.get_JoinKeyPart'partCount raw)
                                    <*> (Capnp.Gen.ById.Xa184c7885cdaf2a1.get_JoinKeyPart'partNum raw))
-instance (Classes.Marshal JoinKeyPart) where
+instance (Classes.Marshal s (JoinKeyPart)) where
     marshalInto raw_ value_ = case value_ of
         JoinKeyPart{..} ->
             (do
@@ -197,20 +199,20 @@
                 (Capnp.Gen.ById.Xa184c7885cdaf2a1.set_JoinKeyPart'partNum raw_ partNum)
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize JoinKeyPart)
-instance (Classes.Cerialize (V.Vector JoinKeyPart)) where
+instance (Classes.Cerialize s (JoinKeyPart))
+instance (Classes.Cerialize s (V.Vector (JoinKeyPart))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector JoinKeyPart))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (JoinKeyPart)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector JoinKeyPart)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (JoinKeyPart))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector JoinKeyPart))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (JoinKeyPart)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector JoinKeyPart)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (JoinKeyPart))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector JoinKeyPart))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (JoinKeyPart)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector JoinKeyPart)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (JoinKeyPart))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data JoinResult 
     = JoinResult 
@@ -220,16 +222,16 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default JoinResult) where
+instance (Default.Default (JoinResult)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg JoinResult) where
+instance (Classes.FromStruct Message.ConstMsg (JoinResult)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize JoinResult) where
-    type Cerial msg JoinResult = (Capnp.Gen.ById.Xa184c7885cdaf2a1.JoinResult msg)
+instance (Classes.Decerialize (JoinResult)) where
+    type Cerial msg (JoinResult) = (Capnp.Gen.ById.Xa184c7885cdaf2a1.JoinResult msg)
     decerialize raw = (JoinResult <$> (Capnp.Gen.ById.Xa184c7885cdaf2a1.get_JoinResult'joinId raw)
                                   <*> (Capnp.Gen.ById.Xa184c7885cdaf2a1.get_JoinResult'succeeded raw)
                                   <*> ((Capnp.Gen.ById.Xa184c7885cdaf2a1.get_JoinResult'cap raw) >>= Classes.decerialize))
-instance (Classes.Marshal JoinResult) where
+instance (Classes.Marshal s (JoinResult)) where
     marshalInto raw_ value_ = case value_ of
         JoinResult{..} ->
             (do
@@ -238,35 +240,35 @@
                 ((Classes.cerialize (Untyped.message raw_) cap) >>= (Capnp.Gen.ById.Xa184c7885cdaf2a1.set_JoinResult'cap raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize JoinResult)
-instance (Classes.Cerialize (V.Vector JoinResult)) where
+instance (Classes.Cerialize s (JoinResult))
+instance (Classes.Cerialize s (V.Vector (JoinResult))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector JoinResult))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (JoinResult)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector JoinResult)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (JoinResult))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector JoinResult))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (JoinResult)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector JoinResult)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (JoinResult))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector JoinResult))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (JoinResult)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector JoinResult)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (JoinResult))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 instance (Classes.Decerialize Capnp.Gen.ById.Xa184c7885cdaf2a1.Side) where
     type Cerial msg Capnp.Gen.ById.Xa184c7885cdaf2a1.Side = Capnp.Gen.ById.Xa184c7885cdaf2a1.Side
     decerialize  = Std_.pure
-instance (Classes.Cerialize Capnp.Gen.ById.Xa184c7885cdaf2a1.Side) where
+instance (Classes.Cerialize s Capnp.Gen.ById.Xa184c7885cdaf2a1.Side) where
     cerialize _ = Std_.pure
-instance (Classes.Cerialize (V.Vector Capnp.Gen.ById.Xa184c7885cdaf2a1.Side)) where
+instance (Classes.Cerialize s (V.Vector Capnp.Gen.ById.Xa184c7885cdaf2a1.Side)) where
     cerialize  = Classes.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector Capnp.Gen.ById.Xa184c7885cdaf2a1.Side))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector Capnp.Gen.ById.Xa184c7885cdaf2a1.Side))) where
     cerialize  = Classes.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.Xa184c7885cdaf2a1.Side)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.Xa184c7885cdaf2a1.Side)))) where
     cerialize  = Classes.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.Xa184c7885cdaf2a1.Side))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.Xa184c7885cdaf2a1.Side))))) where
     cerialize  = Classes.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.Xa184c7885cdaf2a1.Side)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.Xa184c7885cdaf2a1.Side)))))) where
     cerialize  = Classes.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.Xa184c7885cdaf2a1.Side))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.Xa184c7885cdaf2a1.Side))))))) where
     cerialize  = Classes.cerializeBasicVec
diff --git a/gen/lib/Capnp/Gen/Capnp/Schema.hs b/gen/lib/Capnp/Gen/Capnp/Schema.hs
--- a/gen/lib/Capnp/Gen/Capnp/Schema.hs
+++ b/gen/lib/Capnp/Gen/Capnp/Schema.hs
@@ -24,8 +24,6 @@
 import Prelude ((<$>), (<*>), (>>=))
 newtype Node msg
     = Node'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Node) where
-    tMsg f (Node'newtype_ s) = (Node'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Node msg)) where
     fromStruct struct = (Std_.pure (Node'newtype_ struct))
 instance (Classes.ToStruct msg (Node msg)) where
@@ -58,12 +56,14 @@
 get_Node'id (Node'newtype_ struct) = (GenHelpers.getWordField struct 0 0 0)
 set_Node'id :: ((Untyped.RWCtx m s)) => (Node (Message.MutMsg s)) -> Std_.Word64 -> (m ())
 set_Node'id (Node'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word64) 0 0 0)
-get_Node'displayName :: ((Untyped.ReadCtx m msg)) => (Node msg) -> (m (Basics.Text msg))
+get_Node'displayName :: ((Untyped.ReadCtx m msg)
+                        ,(Classes.FromPtr msg (Basics.Text msg))) => (Node msg) -> (m (Basics.Text msg))
 get_Node'displayName (Node'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Node'displayName :: ((Untyped.RWCtx m s)) => (Node (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
+set_Node'displayName :: ((Untyped.RWCtx m s)
+                        ,(Classes.ToPtr s (Basics.Text (Message.MutMsg s)))) => (Node (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
 set_Node'displayName (Node'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -84,12 +84,14 @@
 get_Node'scopeId (Node'newtype_ struct) = (GenHelpers.getWordField struct 2 0 0)
 set_Node'scopeId :: ((Untyped.RWCtx m s)) => (Node (Message.MutMsg s)) -> Std_.Word64 -> (m ())
 set_Node'scopeId (Node'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word64) 2 0 0)
-get_Node'nestedNodes :: ((Untyped.ReadCtx m msg)) => (Node msg) -> (m (Basics.List msg (Node'NestedNode msg)))
+get_Node'nestedNodes :: ((Untyped.ReadCtx m msg)
+                        ,(Classes.FromPtr msg (Basics.List msg (Node'NestedNode msg)))) => (Node msg) -> (m (Basics.List msg (Node'NestedNode msg)))
 get_Node'nestedNodes (Node'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 1 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Node'nestedNodes :: ((Untyped.RWCtx m s)) => (Node (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Node'NestedNode (Message.MutMsg s))) -> (m ())
+set_Node'nestedNodes :: ((Untyped.RWCtx m s)
+                        ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Node'NestedNode (Message.MutMsg s))))) => (Node (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Node'NestedNode (Message.MutMsg s))) -> (m ())
 set_Node'nestedNodes (Node'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 1 struct)
@@ -102,12 +104,14 @@
     (set_Node'nestedNodes struct result)
     (Std_.pure result)
     )
-get_Node'annotations :: ((Untyped.ReadCtx m msg)) => (Node msg) -> (m (Basics.List msg (Annotation msg)))
+get_Node'annotations :: ((Untyped.ReadCtx m msg)
+                        ,(Classes.FromPtr msg (Basics.List msg (Annotation msg)))) => (Node msg) -> (m (Basics.List msg (Annotation msg)))
 get_Node'annotations (Node'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 2 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Node'annotations :: ((Untyped.RWCtx m s)) => (Node (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Annotation (Message.MutMsg s))) -> (m ())
+set_Node'annotations :: ((Untyped.RWCtx m s)
+                        ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Annotation (Message.MutMsg s))))) => (Node (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Annotation (Message.MutMsg s))) -> (m ())
 set_Node'annotations (Node'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 2 struct)
@@ -120,12 +124,14 @@
     (set_Node'annotations struct result)
     (Std_.pure result)
     )
-get_Node'parameters :: ((Untyped.ReadCtx m msg)) => (Node msg) -> (m (Basics.List msg (Node'Parameter msg)))
+get_Node'parameters :: ((Untyped.ReadCtx m msg)
+                       ,(Classes.FromPtr msg (Basics.List msg (Node'Parameter msg)))) => (Node msg) -> (m (Basics.List msg (Node'Parameter msg)))
 get_Node'parameters (Node'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 5 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Node'parameters :: ((Untyped.RWCtx m s)) => (Node (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Node'Parameter (Message.MutMsg s))) -> (m ())
+set_Node'parameters :: ((Untyped.RWCtx m s)
+                       ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Node'Parameter (Message.MutMsg s))))) => (Node (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Node'Parameter (Message.MutMsg s))) -> (m ())
 set_Node'parameters (Node'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 5 struct)
@@ -169,34 +175,40 @@
             _ ->
                 (Std_.pure (Node'unknown' (Std_.fromIntegral tag)))
         )
-get_Node' :: ((Untyped.ReadCtx m msg)) => (Node msg) -> (m (Node' msg))
+get_Node' :: ((Untyped.ReadCtx m msg)
+             ,(Classes.FromStruct msg (Node' msg))) => (Node msg) -> (m (Node' msg))
 get_Node' (Node'newtype_ struct) = (Classes.fromStruct struct)
 set_Node'file :: ((Untyped.RWCtx m s)) => (Node (Message.MutMsg s)) -> (m ())
 set_Node'file (Node'newtype_ struct) = (do
     (GenHelpers.setWordField struct (0 :: Std_.Word16) 1 32 0)
     (Std_.pure ())
     )
-set_Node'struct :: ((Untyped.RWCtx m s)) => (Node (Message.MutMsg s)) -> (m (Node'struct (Message.MutMsg s)))
+set_Node'struct :: ((Untyped.RWCtx m s)
+                   ,(Classes.FromStruct (Message.MutMsg s) (Node'struct (Message.MutMsg s)))) => (Node (Message.MutMsg s)) -> (m (Node'struct (Message.MutMsg s)))
 set_Node'struct (Node'newtype_ struct) = (do
     (GenHelpers.setWordField struct (1 :: Std_.Word16) 1 32 0)
     (Classes.fromStruct struct)
     )
-set_Node'enum :: ((Untyped.RWCtx m s)) => (Node (Message.MutMsg s)) -> (m (Node'enum (Message.MutMsg s)))
+set_Node'enum :: ((Untyped.RWCtx m s)
+                 ,(Classes.FromStruct (Message.MutMsg s) (Node'enum (Message.MutMsg s)))) => (Node (Message.MutMsg s)) -> (m (Node'enum (Message.MutMsg s)))
 set_Node'enum (Node'newtype_ struct) = (do
     (GenHelpers.setWordField struct (2 :: Std_.Word16) 1 32 0)
     (Classes.fromStruct struct)
     )
-set_Node'interface :: ((Untyped.RWCtx m s)) => (Node (Message.MutMsg s)) -> (m (Node'interface (Message.MutMsg s)))
+set_Node'interface :: ((Untyped.RWCtx m s)
+                      ,(Classes.FromStruct (Message.MutMsg s) (Node'interface (Message.MutMsg s)))) => (Node (Message.MutMsg s)) -> (m (Node'interface (Message.MutMsg s)))
 set_Node'interface (Node'newtype_ struct) = (do
     (GenHelpers.setWordField struct (3 :: Std_.Word16) 1 32 0)
     (Classes.fromStruct struct)
     )
-set_Node'const :: ((Untyped.RWCtx m s)) => (Node (Message.MutMsg s)) -> (m (Node'const (Message.MutMsg s)))
+set_Node'const :: ((Untyped.RWCtx m s)
+                  ,(Classes.FromStruct (Message.MutMsg s) (Node'const (Message.MutMsg s)))) => (Node (Message.MutMsg s)) -> (m (Node'const (Message.MutMsg s)))
 set_Node'const (Node'newtype_ struct) = (do
     (GenHelpers.setWordField struct (4 :: Std_.Word16) 1 32 0)
     (Classes.fromStruct struct)
     )
-set_Node'annotation :: ((Untyped.RWCtx m s)) => (Node (Message.MutMsg s)) -> (m (Node'annotation (Message.MutMsg s)))
+set_Node'annotation :: ((Untyped.RWCtx m s)
+                       ,(Classes.FromStruct (Message.MutMsg s) (Node'annotation (Message.MutMsg s)))) => (Node (Message.MutMsg s)) -> (m (Node'annotation (Message.MutMsg s)))
 set_Node'annotation (Node'newtype_ struct) = (do
     (GenHelpers.setWordField struct (5 :: Std_.Word16) 1 32 0)
     (Classes.fromStruct struct)
@@ -205,8 +217,6 @@
 set_Node'unknown' (Node'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 1 32 0)
 newtype Node'struct msg
     = Node'struct'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Node'struct) where
-    tMsg f (Node'struct'newtype_ s) = (Node'struct'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Node'struct msg)) where
     fromStruct struct = (Std_.pure (Node'struct'newtype_ struct))
 instance (Classes.ToStruct msg (Node'struct msg)) where
@@ -240,12 +250,14 @@
 get_Node'struct'discriminantOffset (Node'struct'newtype_ struct) = (GenHelpers.getWordField struct 4 0 0)
 set_Node'struct'discriminantOffset :: ((Untyped.RWCtx m s)) => (Node'struct (Message.MutMsg s)) -> Std_.Word32 -> (m ())
 set_Node'struct'discriminantOffset (Node'struct'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word32) 4 0 0)
-get_Node'struct'fields :: ((Untyped.ReadCtx m msg)) => (Node'struct msg) -> (m (Basics.List msg (Field msg)))
+get_Node'struct'fields :: ((Untyped.ReadCtx m msg)
+                          ,(Classes.FromPtr msg (Basics.List msg (Field msg)))) => (Node'struct msg) -> (m (Basics.List msg (Field msg)))
 get_Node'struct'fields (Node'struct'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 3 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Node'struct'fields :: ((Untyped.RWCtx m s)) => (Node'struct (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Field (Message.MutMsg s))) -> (m ())
+set_Node'struct'fields :: ((Untyped.RWCtx m s)
+                          ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Field (Message.MutMsg s))))) => (Node'struct (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Field (Message.MutMsg s))) -> (m ())
 set_Node'struct'fields (Node'struct'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 3 struct)
@@ -260,8 +272,6 @@
     )
 newtype Node'enum msg
     = Node'enum'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Node'enum) where
-    tMsg f (Node'enum'newtype_ s) = (Node'enum'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Node'enum msg)) where
     fromStruct struct = (Std_.pure (Node'enum'newtype_ struct))
 instance (Classes.ToStruct msg (Node'enum msg)) where
@@ -271,12 +281,14 @@
     message (Node'enum'newtype_ struct) = (Untyped.message struct)
 instance (Untyped.MessageDefault (Node'enum msg)) where
     messageDefault msg = (Node'enum'newtype_ (Untyped.messageDefault msg))
-get_Node'enum'enumerants :: ((Untyped.ReadCtx m msg)) => (Node'enum msg) -> (m (Basics.List msg (Enumerant msg)))
+get_Node'enum'enumerants :: ((Untyped.ReadCtx m msg)
+                            ,(Classes.FromPtr msg (Basics.List msg (Enumerant msg)))) => (Node'enum msg) -> (m (Basics.List msg (Enumerant msg)))
 get_Node'enum'enumerants (Node'enum'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 3 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Node'enum'enumerants :: ((Untyped.RWCtx m s)) => (Node'enum (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Enumerant (Message.MutMsg s))) -> (m ())
+set_Node'enum'enumerants :: ((Untyped.RWCtx m s)
+                            ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Enumerant (Message.MutMsg s))))) => (Node'enum (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Enumerant (Message.MutMsg s))) -> (m ())
 set_Node'enum'enumerants (Node'enum'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 3 struct)
@@ -291,8 +303,6 @@
     )
 newtype Node'interface msg
     = Node'interface'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Node'interface) where
-    tMsg f (Node'interface'newtype_ s) = (Node'interface'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Node'interface msg)) where
     fromStruct struct = (Std_.pure (Node'interface'newtype_ struct))
 instance (Classes.ToStruct msg (Node'interface msg)) where
@@ -302,12 +312,14 @@
     message (Node'interface'newtype_ struct) = (Untyped.message struct)
 instance (Untyped.MessageDefault (Node'interface msg)) where
     messageDefault msg = (Node'interface'newtype_ (Untyped.messageDefault msg))
-get_Node'interface'methods :: ((Untyped.ReadCtx m msg)) => (Node'interface msg) -> (m (Basics.List msg (Method msg)))
+get_Node'interface'methods :: ((Untyped.ReadCtx m msg)
+                              ,(Classes.FromPtr msg (Basics.List msg (Method msg)))) => (Node'interface msg) -> (m (Basics.List msg (Method msg)))
 get_Node'interface'methods (Node'interface'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 3 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Node'interface'methods :: ((Untyped.RWCtx m s)) => (Node'interface (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Method (Message.MutMsg s))) -> (m ())
+set_Node'interface'methods :: ((Untyped.RWCtx m s)
+                              ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Method (Message.MutMsg s))))) => (Node'interface (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Method (Message.MutMsg s))) -> (m ())
 set_Node'interface'methods (Node'interface'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 3 struct)
@@ -320,12 +332,14 @@
     (set_Node'interface'methods struct result)
     (Std_.pure result)
     )
-get_Node'interface'superclasses :: ((Untyped.ReadCtx m msg)) => (Node'interface msg) -> (m (Basics.List msg (Superclass msg)))
+get_Node'interface'superclasses :: ((Untyped.ReadCtx m msg)
+                                   ,(Classes.FromPtr msg (Basics.List msg (Superclass msg)))) => (Node'interface msg) -> (m (Basics.List msg (Superclass msg)))
 get_Node'interface'superclasses (Node'interface'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 4 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Node'interface'superclasses :: ((Untyped.RWCtx m s)) => (Node'interface (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Superclass (Message.MutMsg s))) -> (m ())
+set_Node'interface'superclasses :: ((Untyped.RWCtx m s)
+                                   ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Superclass (Message.MutMsg s))))) => (Node'interface (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Superclass (Message.MutMsg s))) -> (m ())
 set_Node'interface'superclasses (Node'interface'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 4 struct)
@@ -340,8 +354,6 @@
     )
 newtype Node'const msg
     = Node'const'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Node'const) where
-    tMsg f (Node'const'newtype_ s) = (Node'const'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Node'const msg)) where
     fromStruct struct = (Std_.pure (Node'const'newtype_ struct))
 instance (Classes.ToStruct msg (Node'const msg)) where
@@ -351,12 +363,14 @@
     message (Node'const'newtype_ struct) = (Untyped.message struct)
 instance (Untyped.MessageDefault (Node'const msg)) where
     messageDefault msg = (Node'const'newtype_ (Untyped.messageDefault msg))
-get_Node'const'type_ :: ((Untyped.ReadCtx m msg)) => (Node'const msg) -> (m (Type msg))
+get_Node'const'type_ :: ((Untyped.ReadCtx m msg)
+                        ,(Classes.FromPtr msg (Type msg))) => (Node'const msg) -> (m (Type msg))
 get_Node'const'type_ (Node'const'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 3 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Node'const'type_ :: ((Untyped.RWCtx m s)) => (Node'const (Message.MutMsg s)) -> (Type (Message.MutMsg s)) -> (m ())
+set_Node'const'type_ :: ((Untyped.RWCtx m s)
+                        ,(Classes.ToPtr s (Type (Message.MutMsg s)))) => (Node'const (Message.MutMsg s)) -> (Type (Message.MutMsg s)) -> (m ())
 set_Node'const'type_ (Node'const'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 3 struct)
@@ -369,12 +383,14 @@
     (set_Node'const'type_ struct result)
     (Std_.pure result)
     )
-get_Node'const'value :: ((Untyped.ReadCtx m msg)) => (Node'const msg) -> (m (Value msg))
+get_Node'const'value :: ((Untyped.ReadCtx m msg)
+                        ,(Classes.FromPtr msg (Value msg))) => (Node'const msg) -> (m (Value msg))
 get_Node'const'value (Node'const'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 4 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Node'const'value :: ((Untyped.RWCtx m s)) => (Node'const (Message.MutMsg s)) -> (Value (Message.MutMsg s)) -> (m ())
+set_Node'const'value :: ((Untyped.RWCtx m s)
+                        ,(Classes.ToPtr s (Value (Message.MutMsg s)))) => (Node'const (Message.MutMsg s)) -> (Value (Message.MutMsg s)) -> (m ())
 set_Node'const'value (Node'const'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 4 struct)
@@ -389,8 +405,6 @@
     )
 newtype Node'annotation msg
     = Node'annotation'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Node'annotation) where
-    tMsg f (Node'annotation'newtype_ s) = (Node'annotation'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Node'annotation msg)) where
     fromStruct struct = (Std_.pure (Node'annotation'newtype_ struct))
 instance (Classes.ToStruct msg (Node'annotation msg)) where
@@ -400,12 +414,14 @@
     message (Node'annotation'newtype_ struct) = (Untyped.message struct)
 instance (Untyped.MessageDefault (Node'annotation msg)) where
     messageDefault msg = (Node'annotation'newtype_ (Untyped.messageDefault msg))
-get_Node'annotation'type_ :: ((Untyped.ReadCtx m msg)) => (Node'annotation msg) -> (m (Type msg))
+get_Node'annotation'type_ :: ((Untyped.ReadCtx m msg)
+                             ,(Classes.FromPtr msg (Type msg))) => (Node'annotation msg) -> (m (Type msg))
 get_Node'annotation'type_ (Node'annotation'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 3 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Node'annotation'type_ :: ((Untyped.RWCtx m s)) => (Node'annotation (Message.MutMsg s)) -> (Type (Message.MutMsg s)) -> (m ())
+set_Node'annotation'type_ :: ((Untyped.RWCtx m s)
+                             ,(Classes.ToPtr s (Type (Message.MutMsg s)))) => (Node'annotation (Message.MutMsg s)) -> (Type (Message.MutMsg s)) -> (m ())
 set_Node'annotation'type_ (Node'annotation'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 3 struct)
@@ -468,8 +484,6 @@
 set_Node'annotation'targetsAnnotation (Node'annotation'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word1) 1 59 0)
 newtype Node'Parameter msg
     = Node'Parameter'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Node'Parameter) where
-    tMsg f (Node'Parameter'newtype_ s) = (Node'Parameter'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Node'Parameter msg)) where
     fromStruct struct = (Std_.pure (Node'Parameter'newtype_ struct))
 instance (Classes.ToStruct msg (Node'Parameter msg)) where
@@ -498,12 +512,14 @@
 instance (Basics.MutListElem s (Node'Parameter (Message.MutMsg s))) where
     setIndex (Node'Parameter'newtype_ elt) i (Node'Parameter'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Node'Parameter'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_Node'Parameter'name :: ((Untyped.ReadCtx m msg)) => (Node'Parameter msg) -> (m (Basics.Text msg))
+get_Node'Parameter'name :: ((Untyped.ReadCtx m msg)
+                           ,(Classes.FromPtr msg (Basics.Text msg))) => (Node'Parameter msg) -> (m (Basics.Text msg))
 get_Node'Parameter'name (Node'Parameter'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Node'Parameter'name :: ((Untyped.RWCtx m s)) => (Node'Parameter (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
+set_Node'Parameter'name :: ((Untyped.RWCtx m s)
+                           ,(Classes.ToPtr s (Basics.Text (Message.MutMsg s)))) => (Node'Parameter (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
 set_Node'Parameter'name (Node'Parameter'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -518,8 +534,6 @@
     )
 newtype Node'NestedNode msg
     = Node'NestedNode'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Node'NestedNode) where
-    tMsg f (Node'NestedNode'newtype_ s) = (Node'NestedNode'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Node'NestedNode msg)) where
     fromStruct struct = (Std_.pure (Node'NestedNode'newtype_ struct))
 instance (Classes.ToStruct msg (Node'NestedNode msg)) where
@@ -548,12 +562,14 @@
 instance (Basics.MutListElem s (Node'NestedNode (Message.MutMsg s))) where
     setIndex (Node'NestedNode'newtype_ elt) i (Node'NestedNode'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Node'NestedNode'List_ <$> (Untyped.allocCompositeList msg 1 1 len))
-get_Node'NestedNode'name :: ((Untyped.ReadCtx m msg)) => (Node'NestedNode msg) -> (m (Basics.Text msg))
+get_Node'NestedNode'name :: ((Untyped.ReadCtx m msg)
+                            ,(Classes.FromPtr msg (Basics.Text msg))) => (Node'NestedNode msg) -> (m (Basics.Text msg))
 get_Node'NestedNode'name (Node'NestedNode'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Node'NestedNode'name :: ((Untyped.RWCtx m s)) => (Node'NestedNode (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
+set_Node'NestedNode'name :: ((Untyped.RWCtx m s)
+                            ,(Classes.ToPtr s (Basics.Text (Message.MutMsg s)))) => (Node'NestedNode (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
 set_Node'NestedNode'name (Node'NestedNode'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -572,8 +588,6 @@
 set_Node'NestedNode'id (Node'NestedNode'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word64) 0 0 0)
 newtype Node'SourceInfo msg
     = Node'SourceInfo'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Node'SourceInfo) where
-    tMsg f (Node'SourceInfo'newtype_ s) = (Node'SourceInfo'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Node'SourceInfo msg)) where
     fromStruct struct = (Std_.pure (Node'SourceInfo'newtype_ struct))
 instance (Classes.ToStruct msg (Node'SourceInfo msg)) where
@@ -606,12 +620,14 @@
 get_Node'SourceInfo'id (Node'SourceInfo'newtype_ struct) = (GenHelpers.getWordField struct 0 0 0)
 set_Node'SourceInfo'id :: ((Untyped.RWCtx m s)) => (Node'SourceInfo (Message.MutMsg s)) -> Std_.Word64 -> (m ())
 set_Node'SourceInfo'id (Node'SourceInfo'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word64) 0 0 0)
-get_Node'SourceInfo'docComment :: ((Untyped.ReadCtx m msg)) => (Node'SourceInfo msg) -> (m (Basics.Text msg))
+get_Node'SourceInfo'docComment :: ((Untyped.ReadCtx m msg)
+                                  ,(Classes.FromPtr msg (Basics.Text msg))) => (Node'SourceInfo msg) -> (m (Basics.Text msg))
 get_Node'SourceInfo'docComment (Node'SourceInfo'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Node'SourceInfo'docComment :: ((Untyped.RWCtx m s)) => (Node'SourceInfo (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
+set_Node'SourceInfo'docComment :: ((Untyped.RWCtx m s)
+                                  ,(Classes.ToPtr s (Basics.Text (Message.MutMsg s)))) => (Node'SourceInfo (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
 set_Node'SourceInfo'docComment (Node'SourceInfo'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -624,12 +640,14 @@
     (set_Node'SourceInfo'docComment struct result)
     (Std_.pure result)
     )
-get_Node'SourceInfo'members :: ((Untyped.ReadCtx m msg)) => (Node'SourceInfo msg) -> (m (Basics.List msg (Node'SourceInfo'Member msg)))
+get_Node'SourceInfo'members :: ((Untyped.ReadCtx m msg)
+                               ,(Classes.FromPtr msg (Basics.List msg (Node'SourceInfo'Member msg)))) => (Node'SourceInfo msg) -> (m (Basics.List msg (Node'SourceInfo'Member msg)))
 get_Node'SourceInfo'members (Node'SourceInfo'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 1 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Node'SourceInfo'members :: ((Untyped.RWCtx m s)) => (Node'SourceInfo (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Node'SourceInfo'Member (Message.MutMsg s))) -> (m ())
+set_Node'SourceInfo'members :: ((Untyped.RWCtx m s)
+                               ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Node'SourceInfo'Member (Message.MutMsg s))))) => (Node'SourceInfo (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Node'SourceInfo'Member (Message.MutMsg s))) -> (m ())
 set_Node'SourceInfo'members (Node'SourceInfo'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 1 struct)
@@ -644,8 +662,6 @@
     )
 newtype Node'SourceInfo'Member msg
     = Node'SourceInfo'Member'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Node'SourceInfo'Member) where
-    tMsg f (Node'SourceInfo'Member'newtype_ s) = (Node'SourceInfo'Member'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Node'SourceInfo'Member msg)) where
     fromStruct struct = (Std_.pure (Node'SourceInfo'Member'newtype_ struct))
 instance (Classes.ToStruct msg (Node'SourceInfo'Member msg)) where
@@ -674,12 +690,14 @@
 instance (Basics.MutListElem s (Node'SourceInfo'Member (Message.MutMsg s))) where
     setIndex (Node'SourceInfo'Member'newtype_ elt) i (Node'SourceInfo'Member'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Node'SourceInfo'Member'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_Node'SourceInfo'Member'docComment :: ((Untyped.ReadCtx m msg)) => (Node'SourceInfo'Member msg) -> (m (Basics.Text msg))
+get_Node'SourceInfo'Member'docComment :: ((Untyped.ReadCtx m msg)
+                                         ,(Classes.FromPtr msg (Basics.Text msg))) => (Node'SourceInfo'Member msg) -> (m (Basics.Text msg))
 get_Node'SourceInfo'Member'docComment (Node'SourceInfo'Member'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Node'SourceInfo'Member'docComment :: ((Untyped.RWCtx m s)) => (Node'SourceInfo'Member (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
+set_Node'SourceInfo'Member'docComment :: ((Untyped.RWCtx m s)
+                                         ,(Classes.ToPtr s (Basics.Text (Message.MutMsg s)))) => (Node'SourceInfo'Member (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
 set_Node'SourceInfo'Member'docComment (Node'SourceInfo'Member'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -694,8 +712,6 @@
     )
 newtype Field msg
     = Field'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Field) where
-    tMsg f (Field'newtype_ s) = (Field'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Field msg)) where
     fromStruct struct = (Std_.pure (Field'newtype_ struct))
 instance (Classes.ToStruct msg (Field msg)) where
@@ -724,12 +740,14 @@
 instance (Basics.MutListElem s (Field (Message.MutMsg s))) where
     setIndex (Field'newtype_ elt) i (Field'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Field'List_ <$> (Untyped.allocCompositeList msg 3 4 len))
-get_Field'name :: ((Untyped.ReadCtx m msg)) => (Field msg) -> (m (Basics.Text msg))
+get_Field'name :: ((Untyped.ReadCtx m msg)
+                  ,(Classes.FromPtr msg (Basics.Text msg))) => (Field msg) -> (m (Basics.Text msg))
 get_Field'name (Field'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Field'name :: ((Untyped.RWCtx m s)) => (Field (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
+set_Field'name :: ((Untyped.RWCtx m s)
+                  ,(Classes.ToPtr s (Basics.Text (Message.MutMsg s)))) => (Field (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
 set_Field'name (Field'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -746,12 +764,14 @@
 get_Field'codeOrder (Field'newtype_ struct) = (GenHelpers.getWordField struct 0 0 0)
 set_Field'codeOrder :: ((Untyped.RWCtx m s)) => (Field (Message.MutMsg s)) -> Std_.Word16 -> (m ())
 set_Field'codeOrder (Field'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 0 0 0)
-get_Field'annotations :: ((Untyped.ReadCtx m msg)) => (Field msg) -> (m (Basics.List msg (Annotation msg)))
+get_Field'annotations :: ((Untyped.ReadCtx m msg)
+                         ,(Classes.FromPtr msg (Basics.List msg (Annotation msg)))) => (Field msg) -> (m (Basics.List msg (Annotation msg)))
 get_Field'annotations (Field'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 1 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Field'annotations :: ((Untyped.RWCtx m s)) => (Field (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Annotation (Message.MutMsg s))) -> (m ())
+set_Field'annotations :: ((Untyped.RWCtx m s)
+                         ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Annotation (Message.MutMsg s))))) => (Field (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Annotation (Message.MutMsg s))) -> (m ())
 set_Field'annotations (Field'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 1 struct)
@@ -768,7 +788,8 @@
 get_Field'discriminantValue (Field'newtype_ struct) = (GenHelpers.getWordField struct 0 16 65535)
 set_Field'discriminantValue :: ((Untyped.RWCtx m s)) => (Field (Message.MutMsg s)) -> Std_.Word16 -> (m ())
 set_Field'discriminantValue (Field'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 0 16 65535)
-get_Field'ordinal :: ((Untyped.ReadCtx m msg)) => (Field msg) -> (m (Field'ordinal msg))
+get_Field'ordinal :: ((Untyped.ReadCtx m msg)
+                     ,(Classes.FromStruct msg (Field'ordinal msg))) => (Field msg) -> (m (Field'ordinal msg))
 get_Field'ordinal (Field'newtype_ struct) = (Classes.fromStruct struct)
 data Field' msg
     = Field'slot (Field'slot msg)
@@ -785,14 +806,17 @@
             _ ->
                 (Std_.pure (Field'unknown' (Std_.fromIntegral tag)))
         )
-get_Field' :: ((Untyped.ReadCtx m msg)) => (Field msg) -> (m (Field' msg))
+get_Field' :: ((Untyped.ReadCtx m msg)
+              ,(Classes.FromStruct msg (Field' msg))) => (Field msg) -> (m (Field' msg))
 get_Field' (Field'newtype_ struct) = (Classes.fromStruct struct)
-set_Field'slot :: ((Untyped.RWCtx m s)) => (Field (Message.MutMsg s)) -> (m (Field'slot (Message.MutMsg s)))
+set_Field'slot :: ((Untyped.RWCtx m s)
+                  ,(Classes.FromStruct (Message.MutMsg s) (Field'slot (Message.MutMsg s)))) => (Field (Message.MutMsg s)) -> (m (Field'slot (Message.MutMsg s)))
 set_Field'slot (Field'newtype_ struct) = (do
     (GenHelpers.setWordField struct (0 :: Std_.Word16) 1 0 0)
     (Classes.fromStruct struct)
     )
-set_Field'group :: ((Untyped.RWCtx m s)) => (Field (Message.MutMsg s)) -> (m (Field'group (Message.MutMsg s)))
+set_Field'group :: ((Untyped.RWCtx m s)
+                   ,(Classes.FromStruct (Message.MutMsg s) (Field'group (Message.MutMsg s)))) => (Field (Message.MutMsg s)) -> (m (Field'group (Message.MutMsg s)))
 set_Field'group (Field'newtype_ struct) = (do
     (GenHelpers.setWordField struct (1 :: Std_.Word16) 1 0 0)
     (Classes.fromStruct struct)
@@ -801,8 +825,6 @@
 set_Field'unknown' (Field'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 1 0 0)
 newtype Field'slot msg
     = Field'slot'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Field'slot) where
-    tMsg f (Field'slot'newtype_ s) = (Field'slot'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Field'slot msg)) where
     fromStruct struct = (Std_.pure (Field'slot'newtype_ struct))
 instance (Classes.ToStruct msg (Field'slot msg)) where
@@ -816,12 +838,14 @@
 get_Field'slot'offset (Field'slot'newtype_ struct) = (GenHelpers.getWordField struct 0 32 0)
 set_Field'slot'offset :: ((Untyped.RWCtx m s)) => (Field'slot (Message.MutMsg s)) -> Std_.Word32 -> (m ())
 set_Field'slot'offset (Field'slot'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word32) 0 32 0)
-get_Field'slot'type_ :: ((Untyped.ReadCtx m msg)) => (Field'slot msg) -> (m (Type msg))
+get_Field'slot'type_ :: ((Untyped.ReadCtx m msg)
+                        ,(Classes.FromPtr msg (Type msg))) => (Field'slot msg) -> (m (Type msg))
 get_Field'slot'type_ (Field'slot'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 2 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Field'slot'type_ :: ((Untyped.RWCtx m s)) => (Field'slot (Message.MutMsg s)) -> (Type (Message.MutMsg s)) -> (m ())
+set_Field'slot'type_ :: ((Untyped.RWCtx m s)
+                        ,(Classes.ToPtr s (Type (Message.MutMsg s)))) => (Field'slot (Message.MutMsg s)) -> (Type (Message.MutMsg s)) -> (m ())
 set_Field'slot'type_ (Field'slot'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 2 struct)
@@ -834,12 +858,14 @@
     (set_Field'slot'type_ struct result)
     (Std_.pure result)
     )
-get_Field'slot'defaultValue :: ((Untyped.ReadCtx m msg)) => (Field'slot msg) -> (m (Value msg))
+get_Field'slot'defaultValue :: ((Untyped.ReadCtx m msg)
+                               ,(Classes.FromPtr msg (Value msg))) => (Field'slot msg) -> (m (Value msg))
 get_Field'slot'defaultValue (Field'slot'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 3 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Field'slot'defaultValue :: ((Untyped.RWCtx m s)) => (Field'slot (Message.MutMsg s)) -> (Value (Message.MutMsg s)) -> (m ())
+set_Field'slot'defaultValue :: ((Untyped.RWCtx m s)
+                               ,(Classes.ToPtr s (Value (Message.MutMsg s)))) => (Field'slot (Message.MutMsg s)) -> (Value (Message.MutMsg s)) -> (m ())
 set_Field'slot'defaultValue (Field'slot'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 3 struct)
@@ -858,8 +884,6 @@
 set_Field'slot'hadExplicitDefault (Field'slot'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word1) 2 0 0)
 newtype Field'group msg
     = Field'group'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Field'group) where
-    tMsg f (Field'group'newtype_ s) = (Field'group'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Field'group msg)) where
     fromStruct struct = (Std_.pure (Field'group'newtype_ struct))
 instance (Classes.ToStruct msg (Field'group msg)) where
@@ -875,8 +899,6 @@
 set_Field'group'typeId (Field'group'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word64) 2 0 0)
 newtype Field'ordinal msg
     = Field'ordinal'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Field'ordinal) where
-    tMsg f (Field'ordinal'newtype_ s) = (Field'ordinal'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Field'ordinal msg)) where
     fromStruct struct = (Std_.pure (Field'ordinal'newtype_ struct))
 instance (Classes.ToStruct msg (Field'ordinal msg)) where
@@ -901,7 +923,8 @@
             _ ->
                 (Std_.pure (Field'ordinal'unknown' (Std_.fromIntegral tag)))
         )
-get_Field'ordinal' :: ((Untyped.ReadCtx m msg)) => (Field'ordinal msg) -> (m (Field'ordinal' msg))
+get_Field'ordinal' :: ((Untyped.ReadCtx m msg)
+                      ,(Classes.FromStruct msg (Field'ordinal' msg))) => (Field'ordinal msg) -> (m (Field'ordinal' msg))
 get_Field'ordinal' (Field'ordinal'newtype_ struct) = (Classes.fromStruct struct)
 set_Field'ordinal'implicit :: ((Untyped.RWCtx m s)) => (Field'ordinal (Message.MutMsg s)) -> (m ())
 set_Field'ordinal'implicit (Field'ordinal'newtype_ struct) = (do
@@ -919,8 +942,6 @@
 field'noDiscriminant  = (Classes.fromWord 65535)
 newtype Enumerant msg
     = Enumerant'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Enumerant) where
-    tMsg f (Enumerant'newtype_ s) = (Enumerant'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Enumerant msg)) where
     fromStruct struct = (Std_.pure (Enumerant'newtype_ struct))
 instance (Classes.ToStruct msg (Enumerant msg)) where
@@ -949,12 +970,14 @@
 instance (Basics.MutListElem s (Enumerant (Message.MutMsg s))) where
     setIndex (Enumerant'newtype_ elt) i (Enumerant'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Enumerant'List_ <$> (Untyped.allocCompositeList msg 1 2 len))
-get_Enumerant'name :: ((Untyped.ReadCtx m msg)) => (Enumerant msg) -> (m (Basics.Text msg))
+get_Enumerant'name :: ((Untyped.ReadCtx m msg)
+                      ,(Classes.FromPtr msg (Basics.Text msg))) => (Enumerant msg) -> (m (Basics.Text msg))
 get_Enumerant'name (Enumerant'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Enumerant'name :: ((Untyped.RWCtx m s)) => (Enumerant (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
+set_Enumerant'name :: ((Untyped.RWCtx m s)
+                      ,(Classes.ToPtr s (Basics.Text (Message.MutMsg s)))) => (Enumerant (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
 set_Enumerant'name (Enumerant'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -971,12 +994,14 @@
 get_Enumerant'codeOrder (Enumerant'newtype_ struct) = (GenHelpers.getWordField struct 0 0 0)
 set_Enumerant'codeOrder :: ((Untyped.RWCtx m s)) => (Enumerant (Message.MutMsg s)) -> Std_.Word16 -> (m ())
 set_Enumerant'codeOrder (Enumerant'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 0 0 0)
-get_Enumerant'annotations :: ((Untyped.ReadCtx m msg)) => (Enumerant msg) -> (m (Basics.List msg (Annotation msg)))
+get_Enumerant'annotations :: ((Untyped.ReadCtx m msg)
+                             ,(Classes.FromPtr msg (Basics.List msg (Annotation msg)))) => (Enumerant msg) -> (m (Basics.List msg (Annotation msg)))
 get_Enumerant'annotations (Enumerant'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 1 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Enumerant'annotations :: ((Untyped.RWCtx m s)) => (Enumerant (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Annotation (Message.MutMsg s))) -> (m ())
+set_Enumerant'annotations :: ((Untyped.RWCtx m s)
+                             ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Annotation (Message.MutMsg s))))) => (Enumerant (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Annotation (Message.MutMsg s))) -> (m ())
 set_Enumerant'annotations (Enumerant'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 1 struct)
@@ -991,8 +1016,6 @@
     )
 newtype Superclass msg
     = Superclass'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Superclass) where
-    tMsg f (Superclass'newtype_ s) = (Superclass'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Superclass msg)) where
     fromStruct struct = (Std_.pure (Superclass'newtype_ struct))
 instance (Classes.ToStruct msg (Superclass msg)) where
@@ -1025,12 +1048,14 @@
 get_Superclass'id (Superclass'newtype_ struct) = (GenHelpers.getWordField struct 0 0 0)
 set_Superclass'id :: ((Untyped.RWCtx m s)) => (Superclass (Message.MutMsg s)) -> Std_.Word64 -> (m ())
 set_Superclass'id (Superclass'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word64) 0 0 0)
-get_Superclass'brand :: ((Untyped.ReadCtx m msg)) => (Superclass msg) -> (m (Brand msg))
+get_Superclass'brand :: ((Untyped.ReadCtx m msg)
+                        ,(Classes.FromPtr msg (Brand msg))) => (Superclass msg) -> (m (Brand msg))
 get_Superclass'brand (Superclass'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Superclass'brand :: ((Untyped.RWCtx m s)) => (Superclass (Message.MutMsg s)) -> (Brand (Message.MutMsg s)) -> (m ())
+set_Superclass'brand :: ((Untyped.RWCtx m s)
+                        ,(Classes.ToPtr s (Brand (Message.MutMsg s)))) => (Superclass (Message.MutMsg s)) -> (Brand (Message.MutMsg s)) -> (m ())
 set_Superclass'brand (Superclass'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -1045,8 +1070,6 @@
     )
 newtype Method msg
     = Method'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Method) where
-    tMsg f (Method'newtype_ s) = (Method'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Method msg)) where
     fromStruct struct = (Std_.pure (Method'newtype_ struct))
 instance (Classes.ToStruct msg (Method msg)) where
@@ -1075,12 +1098,14 @@
 instance (Basics.MutListElem s (Method (Message.MutMsg s))) where
     setIndex (Method'newtype_ elt) i (Method'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Method'List_ <$> (Untyped.allocCompositeList msg 3 5 len))
-get_Method'name :: ((Untyped.ReadCtx m msg)) => (Method msg) -> (m (Basics.Text msg))
+get_Method'name :: ((Untyped.ReadCtx m msg)
+                   ,(Classes.FromPtr msg (Basics.Text msg))) => (Method msg) -> (m (Basics.Text msg))
 get_Method'name (Method'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Method'name :: ((Untyped.RWCtx m s)) => (Method (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
+set_Method'name :: ((Untyped.RWCtx m s)
+                   ,(Classes.ToPtr s (Basics.Text (Message.MutMsg s)))) => (Method (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
 set_Method'name (Method'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -1105,12 +1130,14 @@
 get_Method'resultStructType (Method'newtype_ struct) = (GenHelpers.getWordField struct 2 0 0)
 set_Method'resultStructType :: ((Untyped.RWCtx m s)) => (Method (Message.MutMsg s)) -> Std_.Word64 -> (m ())
 set_Method'resultStructType (Method'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word64) 2 0 0)
-get_Method'annotations :: ((Untyped.ReadCtx m msg)) => (Method msg) -> (m (Basics.List msg (Annotation msg)))
+get_Method'annotations :: ((Untyped.ReadCtx m msg)
+                          ,(Classes.FromPtr msg (Basics.List msg (Annotation msg)))) => (Method msg) -> (m (Basics.List msg (Annotation msg)))
 get_Method'annotations (Method'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 1 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Method'annotations :: ((Untyped.RWCtx m s)) => (Method (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Annotation (Message.MutMsg s))) -> (m ())
+set_Method'annotations :: ((Untyped.RWCtx m s)
+                          ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Annotation (Message.MutMsg s))))) => (Method (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Annotation (Message.MutMsg s))) -> (m ())
 set_Method'annotations (Method'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 1 struct)
@@ -1123,12 +1150,14 @@
     (set_Method'annotations struct result)
     (Std_.pure result)
     )
-get_Method'paramBrand :: ((Untyped.ReadCtx m msg)) => (Method msg) -> (m (Brand msg))
+get_Method'paramBrand :: ((Untyped.ReadCtx m msg)
+                         ,(Classes.FromPtr msg (Brand msg))) => (Method msg) -> (m (Brand msg))
 get_Method'paramBrand (Method'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 2 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Method'paramBrand :: ((Untyped.RWCtx m s)) => (Method (Message.MutMsg s)) -> (Brand (Message.MutMsg s)) -> (m ())
+set_Method'paramBrand :: ((Untyped.RWCtx m s)
+                         ,(Classes.ToPtr s (Brand (Message.MutMsg s)))) => (Method (Message.MutMsg s)) -> (Brand (Message.MutMsg s)) -> (m ())
 set_Method'paramBrand (Method'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 2 struct)
@@ -1141,12 +1170,14 @@
     (set_Method'paramBrand struct result)
     (Std_.pure result)
     )
-get_Method'resultBrand :: ((Untyped.ReadCtx m msg)) => (Method msg) -> (m (Brand msg))
+get_Method'resultBrand :: ((Untyped.ReadCtx m msg)
+                          ,(Classes.FromPtr msg (Brand msg))) => (Method msg) -> (m (Brand msg))
 get_Method'resultBrand (Method'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 3 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Method'resultBrand :: ((Untyped.RWCtx m s)) => (Method (Message.MutMsg s)) -> (Brand (Message.MutMsg s)) -> (m ())
+set_Method'resultBrand :: ((Untyped.RWCtx m s)
+                          ,(Classes.ToPtr s (Brand (Message.MutMsg s)))) => (Method (Message.MutMsg s)) -> (Brand (Message.MutMsg s)) -> (m ())
 set_Method'resultBrand (Method'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 3 struct)
@@ -1159,12 +1190,14 @@
     (set_Method'resultBrand struct result)
     (Std_.pure result)
     )
-get_Method'implicitParameters :: ((Untyped.ReadCtx m msg)) => (Method msg) -> (m (Basics.List msg (Node'Parameter msg)))
+get_Method'implicitParameters :: ((Untyped.ReadCtx m msg)
+                                 ,(Classes.FromPtr msg (Basics.List msg (Node'Parameter msg)))) => (Method msg) -> (m (Basics.List msg (Node'Parameter msg)))
 get_Method'implicitParameters (Method'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 4 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Method'implicitParameters :: ((Untyped.RWCtx m s)) => (Method (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Node'Parameter (Message.MutMsg s))) -> (m ())
+set_Method'implicitParameters :: ((Untyped.RWCtx m s)
+                                 ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Node'Parameter (Message.MutMsg s))))) => (Method (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Node'Parameter (Message.MutMsg s))) -> (m ())
 set_Method'implicitParameters (Method'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 4 struct)
@@ -1179,8 +1212,6 @@
     )
 newtype Type msg
     = Type'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Type) where
-    tMsg f (Type'newtype_ s) = (Type'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Type msg)) where
     fromStruct struct = (Std_.pure (Type'newtype_ struct))
 instance (Classes.ToStruct msg (Type msg)) where
@@ -1275,7 +1306,8 @@
             _ ->
                 (Std_.pure (Type'unknown' (Std_.fromIntegral tag)))
         )
-get_Type' :: ((Untyped.ReadCtx m msg)) => (Type msg) -> (m (Type' msg))
+get_Type' :: ((Untyped.ReadCtx m msg)
+             ,(Classes.FromStruct msg (Type' msg))) => (Type msg) -> (m (Type' msg))
 get_Type' (Type'newtype_ struct) = (Classes.fromStruct struct)
 set_Type'void :: ((Untyped.RWCtx m s)) => (Type (Message.MutMsg s)) -> (m ())
 set_Type'void (Type'newtype_ struct) = (do
@@ -1347,27 +1379,32 @@
     (GenHelpers.setWordField struct (13 :: Std_.Word16) 0 0 0)
     (Std_.pure ())
     )
-set_Type'list :: ((Untyped.RWCtx m s)) => (Type (Message.MutMsg s)) -> (m (Type'list (Message.MutMsg s)))
+set_Type'list :: ((Untyped.RWCtx m s)
+                 ,(Classes.FromStruct (Message.MutMsg s) (Type'list (Message.MutMsg s)))) => (Type (Message.MutMsg s)) -> (m (Type'list (Message.MutMsg s)))
 set_Type'list (Type'newtype_ struct) = (do
     (GenHelpers.setWordField struct (14 :: Std_.Word16) 0 0 0)
     (Classes.fromStruct struct)
     )
-set_Type'enum :: ((Untyped.RWCtx m s)) => (Type (Message.MutMsg s)) -> (m (Type'enum (Message.MutMsg s)))
+set_Type'enum :: ((Untyped.RWCtx m s)
+                 ,(Classes.FromStruct (Message.MutMsg s) (Type'enum (Message.MutMsg s)))) => (Type (Message.MutMsg s)) -> (m (Type'enum (Message.MutMsg s)))
 set_Type'enum (Type'newtype_ struct) = (do
     (GenHelpers.setWordField struct (15 :: Std_.Word16) 0 0 0)
     (Classes.fromStruct struct)
     )
-set_Type'struct :: ((Untyped.RWCtx m s)) => (Type (Message.MutMsg s)) -> (m (Type'struct (Message.MutMsg s)))
+set_Type'struct :: ((Untyped.RWCtx m s)
+                   ,(Classes.FromStruct (Message.MutMsg s) (Type'struct (Message.MutMsg s)))) => (Type (Message.MutMsg s)) -> (m (Type'struct (Message.MutMsg s)))
 set_Type'struct (Type'newtype_ struct) = (do
     (GenHelpers.setWordField struct (16 :: Std_.Word16) 0 0 0)
     (Classes.fromStruct struct)
     )
-set_Type'interface :: ((Untyped.RWCtx m s)) => (Type (Message.MutMsg s)) -> (m (Type'interface (Message.MutMsg s)))
+set_Type'interface :: ((Untyped.RWCtx m s)
+                      ,(Classes.FromStruct (Message.MutMsg s) (Type'interface (Message.MutMsg s)))) => (Type (Message.MutMsg s)) -> (m (Type'interface (Message.MutMsg s)))
 set_Type'interface (Type'newtype_ struct) = (do
     (GenHelpers.setWordField struct (17 :: Std_.Word16) 0 0 0)
     (Classes.fromStruct struct)
     )
-set_Type'anyPointer :: ((Untyped.RWCtx m s)) => (Type (Message.MutMsg s)) -> (m (Type'anyPointer (Message.MutMsg s)))
+set_Type'anyPointer :: ((Untyped.RWCtx m s)
+                       ,(Classes.FromStruct (Message.MutMsg s) (Type'anyPointer (Message.MutMsg s)))) => (Type (Message.MutMsg s)) -> (m (Type'anyPointer (Message.MutMsg s)))
 set_Type'anyPointer (Type'newtype_ struct) = (do
     (GenHelpers.setWordField struct (18 :: Std_.Word16) 0 0 0)
     (Classes.fromStruct struct)
@@ -1376,8 +1413,6 @@
 set_Type'unknown' (Type'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 0 0 0)
 newtype Type'list msg
     = Type'list'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Type'list) where
-    tMsg f (Type'list'newtype_ s) = (Type'list'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Type'list msg)) where
     fromStruct struct = (Std_.pure (Type'list'newtype_ struct))
 instance (Classes.ToStruct msg (Type'list msg)) where
@@ -1387,12 +1422,14 @@
     message (Type'list'newtype_ struct) = (Untyped.message struct)
 instance (Untyped.MessageDefault (Type'list msg)) where
     messageDefault msg = (Type'list'newtype_ (Untyped.messageDefault msg))
-get_Type'list'elementType :: ((Untyped.ReadCtx m msg)) => (Type'list msg) -> (m (Type msg))
+get_Type'list'elementType :: ((Untyped.ReadCtx m msg)
+                             ,(Classes.FromPtr msg (Type msg))) => (Type'list msg) -> (m (Type msg))
 get_Type'list'elementType (Type'list'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Type'list'elementType :: ((Untyped.RWCtx m s)) => (Type'list (Message.MutMsg s)) -> (Type (Message.MutMsg s)) -> (m ())
+set_Type'list'elementType :: ((Untyped.RWCtx m s)
+                             ,(Classes.ToPtr s (Type (Message.MutMsg s)))) => (Type'list (Message.MutMsg s)) -> (Type (Message.MutMsg s)) -> (m ())
 set_Type'list'elementType (Type'list'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -1407,8 +1444,6 @@
     )
 newtype Type'enum msg
     = Type'enum'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Type'enum) where
-    tMsg f (Type'enum'newtype_ s) = (Type'enum'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Type'enum msg)) where
     fromStruct struct = (Std_.pure (Type'enum'newtype_ struct))
 instance (Classes.ToStruct msg (Type'enum msg)) where
@@ -1422,12 +1457,14 @@
 get_Type'enum'typeId (Type'enum'newtype_ struct) = (GenHelpers.getWordField struct 1 0 0)
 set_Type'enum'typeId :: ((Untyped.RWCtx m s)) => (Type'enum (Message.MutMsg s)) -> Std_.Word64 -> (m ())
 set_Type'enum'typeId (Type'enum'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word64) 1 0 0)
-get_Type'enum'brand :: ((Untyped.ReadCtx m msg)) => (Type'enum msg) -> (m (Brand msg))
+get_Type'enum'brand :: ((Untyped.ReadCtx m msg)
+                       ,(Classes.FromPtr msg (Brand msg))) => (Type'enum msg) -> (m (Brand msg))
 get_Type'enum'brand (Type'enum'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Type'enum'brand :: ((Untyped.RWCtx m s)) => (Type'enum (Message.MutMsg s)) -> (Brand (Message.MutMsg s)) -> (m ())
+set_Type'enum'brand :: ((Untyped.RWCtx m s)
+                       ,(Classes.ToPtr s (Brand (Message.MutMsg s)))) => (Type'enum (Message.MutMsg s)) -> (Brand (Message.MutMsg s)) -> (m ())
 set_Type'enum'brand (Type'enum'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -1442,8 +1479,6 @@
     )
 newtype Type'struct msg
     = Type'struct'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Type'struct) where
-    tMsg f (Type'struct'newtype_ s) = (Type'struct'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Type'struct msg)) where
     fromStruct struct = (Std_.pure (Type'struct'newtype_ struct))
 instance (Classes.ToStruct msg (Type'struct msg)) where
@@ -1457,12 +1492,14 @@
 get_Type'struct'typeId (Type'struct'newtype_ struct) = (GenHelpers.getWordField struct 1 0 0)
 set_Type'struct'typeId :: ((Untyped.RWCtx m s)) => (Type'struct (Message.MutMsg s)) -> Std_.Word64 -> (m ())
 set_Type'struct'typeId (Type'struct'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word64) 1 0 0)
-get_Type'struct'brand :: ((Untyped.ReadCtx m msg)) => (Type'struct msg) -> (m (Brand msg))
+get_Type'struct'brand :: ((Untyped.ReadCtx m msg)
+                         ,(Classes.FromPtr msg (Brand msg))) => (Type'struct msg) -> (m (Brand msg))
 get_Type'struct'brand (Type'struct'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Type'struct'brand :: ((Untyped.RWCtx m s)) => (Type'struct (Message.MutMsg s)) -> (Brand (Message.MutMsg s)) -> (m ())
+set_Type'struct'brand :: ((Untyped.RWCtx m s)
+                         ,(Classes.ToPtr s (Brand (Message.MutMsg s)))) => (Type'struct (Message.MutMsg s)) -> (Brand (Message.MutMsg s)) -> (m ())
 set_Type'struct'brand (Type'struct'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -1477,8 +1514,6 @@
     )
 newtype Type'interface msg
     = Type'interface'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Type'interface) where
-    tMsg f (Type'interface'newtype_ s) = (Type'interface'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Type'interface msg)) where
     fromStruct struct = (Std_.pure (Type'interface'newtype_ struct))
 instance (Classes.ToStruct msg (Type'interface msg)) where
@@ -1492,12 +1527,14 @@
 get_Type'interface'typeId (Type'interface'newtype_ struct) = (GenHelpers.getWordField struct 1 0 0)
 set_Type'interface'typeId :: ((Untyped.RWCtx m s)) => (Type'interface (Message.MutMsg s)) -> Std_.Word64 -> (m ())
 set_Type'interface'typeId (Type'interface'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word64) 1 0 0)
-get_Type'interface'brand :: ((Untyped.ReadCtx m msg)) => (Type'interface msg) -> (m (Brand msg))
+get_Type'interface'brand :: ((Untyped.ReadCtx m msg)
+                            ,(Classes.FromPtr msg (Brand msg))) => (Type'interface msg) -> (m (Brand msg))
 get_Type'interface'brand (Type'interface'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Type'interface'brand :: ((Untyped.RWCtx m s)) => (Type'interface (Message.MutMsg s)) -> (Brand (Message.MutMsg s)) -> (m ())
+set_Type'interface'brand :: ((Untyped.RWCtx m s)
+                            ,(Classes.ToPtr s (Brand (Message.MutMsg s)))) => (Type'interface (Message.MutMsg s)) -> (Brand (Message.MutMsg s)) -> (m ())
 set_Type'interface'brand (Type'interface'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -1512,8 +1549,6 @@
     )
 newtype Type'anyPointer msg
     = Type'anyPointer'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Type'anyPointer) where
-    tMsg f (Type'anyPointer'newtype_ s) = (Type'anyPointer'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Type'anyPointer msg)) where
     fromStruct struct = (Std_.pure (Type'anyPointer'newtype_ struct))
 instance (Classes.ToStruct msg (Type'anyPointer msg)) where
@@ -1541,19 +1576,23 @@
             _ ->
                 (Std_.pure (Type'anyPointer'unknown' (Std_.fromIntegral tag)))
         )
-get_Type'anyPointer' :: ((Untyped.ReadCtx m msg)) => (Type'anyPointer msg) -> (m (Type'anyPointer' msg))
+get_Type'anyPointer' :: ((Untyped.ReadCtx m msg)
+                        ,(Classes.FromStruct msg (Type'anyPointer' msg))) => (Type'anyPointer msg) -> (m (Type'anyPointer' msg))
 get_Type'anyPointer' (Type'anyPointer'newtype_ struct) = (Classes.fromStruct struct)
-set_Type'anyPointer'unconstrained :: ((Untyped.RWCtx m s)) => (Type'anyPointer (Message.MutMsg s)) -> (m (Type'anyPointer'unconstrained (Message.MutMsg s)))
+set_Type'anyPointer'unconstrained :: ((Untyped.RWCtx m s)
+                                     ,(Classes.FromStruct (Message.MutMsg s) (Type'anyPointer'unconstrained (Message.MutMsg s)))) => (Type'anyPointer (Message.MutMsg s)) -> (m (Type'anyPointer'unconstrained (Message.MutMsg s)))
 set_Type'anyPointer'unconstrained (Type'anyPointer'newtype_ struct) = (do
     (GenHelpers.setWordField struct (0 :: Std_.Word16) 1 0 0)
     (Classes.fromStruct struct)
     )
-set_Type'anyPointer'parameter :: ((Untyped.RWCtx m s)) => (Type'anyPointer (Message.MutMsg s)) -> (m (Type'anyPointer'parameter (Message.MutMsg s)))
+set_Type'anyPointer'parameter :: ((Untyped.RWCtx m s)
+                                 ,(Classes.FromStruct (Message.MutMsg s) (Type'anyPointer'parameter (Message.MutMsg s)))) => (Type'anyPointer (Message.MutMsg s)) -> (m (Type'anyPointer'parameter (Message.MutMsg s)))
 set_Type'anyPointer'parameter (Type'anyPointer'newtype_ struct) = (do
     (GenHelpers.setWordField struct (1 :: Std_.Word16) 1 0 0)
     (Classes.fromStruct struct)
     )
-set_Type'anyPointer'implicitMethodParameter :: ((Untyped.RWCtx m s)) => (Type'anyPointer (Message.MutMsg s)) -> (m (Type'anyPointer'implicitMethodParameter (Message.MutMsg s)))
+set_Type'anyPointer'implicitMethodParameter :: ((Untyped.RWCtx m s)
+                                               ,(Classes.FromStruct (Message.MutMsg s) (Type'anyPointer'implicitMethodParameter (Message.MutMsg s)))) => (Type'anyPointer (Message.MutMsg s)) -> (m (Type'anyPointer'implicitMethodParameter (Message.MutMsg s)))
 set_Type'anyPointer'implicitMethodParameter (Type'anyPointer'newtype_ struct) = (do
     (GenHelpers.setWordField struct (2 :: Std_.Word16) 1 0 0)
     (Classes.fromStruct struct)
@@ -1562,8 +1601,6 @@
 set_Type'anyPointer'unknown' (Type'anyPointer'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 1 0 0)
 newtype Type'anyPointer'unconstrained msg
     = Type'anyPointer'unconstrained'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Type'anyPointer'unconstrained) where
-    tMsg f (Type'anyPointer'unconstrained'newtype_ s) = (Type'anyPointer'unconstrained'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Type'anyPointer'unconstrained msg)) where
     fromStruct struct = (Std_.pure (Type'anyPointer'unconstrained'newtype_ struct))
 instance (Classes.ToStruct msg (Type'anyPointer'unconstrained msg)) where
@@ -1594,7 +1631,8 @@
             _ ->
                 (Std_.pure (Type'anyPointer'unconstrained'unknown' (Std_.fromIntegral tag)))
         )
-get_Type'anyPointer'unconstrained' :: ((Untyped.ReadCtx m msg)) => (Type'anyPointer'unconstrained msg) -> (m (Type'anyPointer'unconstrained' msg))
+get_Type'anyPointer'unconstrained' :: ((Untyped.ReadCtx m msg)
+                                      ,(Classes.FromStruct msg (Type'anyPointer'unconstrained' msg))) => (Type'anyPointer'unconstrained msg) -> (m (Type'anyPointer'unconstrained' msg))
 get_Type'anyPointer'unconstrained' (Type'anyPointer'unconstrained'newtype_ struct) = (Classes.fromStruct struct)
 set_Type'anyPointer'unconstrained'anyKind :: ((Untyped.RWCtx m s)) => (Type'anyPointer'unconstrained (Message.MutMsg s)) -> (m ())
 set_Type'anyPointer'unconstrained'anyKind (Type'anyPointer'unconstrained'newtype_ struct) = (do
@@ -1620,8 +1658,6 @@
 set_Type'anyPointer'unconstrained'unknown' (Type'anyPointer'unconstrained'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 1 16 0)
 newtype Type'anyPointer'parameter msg
     = Type'anyPointer'parameter'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Type'anyPointer'parameter) where
-    tMsg f (Type'anyPointer'parameter'newtype_ s) = (Type'anyPointer'parameter'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Type'anyPointer'parameter msg)) where
     fromStruct struct = (Std_.pure (Type'anyPointer'parameter'newtype_ struct))
 instance (Classes.ToStruct msg (Type'anyPointer'parameter msg)) where
@@ -1641,8 +1677,6 @@
 set_Type'anyPointer'parameter'parameterIndex (Type'anyPointer'parameter'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 1 16 0)
 newtype Type'anyPointer'implicitMethodParameter msg
     = Type'anyPointer'implicitMethodParameter'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Type'anyPointer'implicitMethodParameter) where
-    tMsg f (Type'anyPointer'implicitMethodParameter'newtype_ s) = (Type'anyPointer'implicitMethodParameter'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Type'anyPointer'implicitMethodParameter msg)) where
     fromStruct struct = (Std_.pure (Type'anyPointer'implicitMethodParameter'newtype_ struct))
 instance (Classes.ToStruct msg (Type'anyPointer'implicitMethodParameter msg)) where
@@ -1658,8 +1692,6 @@
 set_Type'anyPointer'implicitMethodParameter'parameterIndex (Type'anyPointer'implicitMethodParameter'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 1 16 0)
 newtype Brand msg
     = Brand'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Brand) where
-    tMsg f (Brand'newtype_ s) = (Brand'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Brand msg)) where
     fromStruct struct = (Std_.pure (Brand'newtype_ struct))
 instance (Classes.ToStruct msg (Brand msg)) where
@@ -1688,12 +1720,14 @@
 instance (Basics.MutListElem s (Brand (Message.MutMsg s))) where
     setIndex (Brand'newtype_ elt) i (Brand'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Brand'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_Brand'scopes :: ((Untyped.ReadCtx m msg)) => (Brand msg) -> (m (Basics.List msg (Brand'Scope msg)))
+get_Brand'scopes :: ((Untyped.ReadCtx m msg)
+                    ,(Classes.FromPtr msg (Basics.List msg (Brand'Scope msg)))) => (Brand msg) -> (m (Basics.List msg (Brand'Scope msg)))
 get_Brand'scopes (Brand'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Brand'scopes :: ((Untyped.RWCtx m s)) => (Brand (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Brand'Scope (Message.MutMsg s))) -> (m ())
+set_Brand'scopes :: ((Untyped.RWCtx m s)
+                    ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Brand'Scope (Message.MutMsg s))))) => (Brand (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Brand'Scope (Message.MutMsg s))) -> (m ())
 set_Brand'scopes (Brand'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -1708,8 +1742,6 @@
     )
 newtype Brand'Scope msg
     = Brand'Scope'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Brand'Scope) where
-    tMsg f (Brand'Scope'newtype_ s) = (Brand'Scope'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Brand'Scope msg)) where
     fromStruct struct = (Std_.pure (Brand'Scope'newtype_ struct))
 instance (Classes.ToStruct msg (Brand'Scope msg)) where
@@ -1760,9 +1792,11 @@
             _ ->
                 (Std_.pure (Brand'Scope'unknown' (Std_.fromIntegral tag)))
         )
-get_Brand'Scope' :: ((Untyped.ReadCtx m msg)) => (Brand'Scope msg) -> (m (Brand'Scope' msg))
+get_Brand'Scope' :: ((Untyped.ReadCtx m msg)
+                    ,(Classes.FromStruct msg (Brand'Scope' msg))) => (Brand'Scope msg) -> (m (Brand'Scope' msg))
 get_Brand'Scope' (Brand'Scope'newtype_ struct) = (Classes.fromStruct struct)
-set_Brand'Scope'bind :: ((Untyped.RWCtx m s)) => (Brand'Scope (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Brand'Binding (Message.MutMsg s))) -> (m ())
+set_Brand'Scope'bind :: ((Untyped.RWCtx m s)
+                        ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Brand'Binding (Message.MutMsg s))))) => (Brand'Scope (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Brand'Binding (Message.MutMsg s))) -> (m ())
 set_Brand'Scope'bind (Brand'Scope'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (0 :: Std_.Word16) 1 0 0)
     (do
@@ -1779,8 +1813,6 @@
 set_Brand'Scope'unknown' (Brand'Scope'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 1 0 0)
 newtype Brand'Binding msg
     = Brand'Binding'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Brand'Binding) where
-    tMsg f (Brand'Binding'newtype_ s) = (Brand'Binding'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Brand'Binding msg)) where
     fromStruct struct = (Std_.pure (Brand'Binding'newtype_ struct))
 instance (Classes.ToStruct msg (Brand'Binding msg)) where
@@ -1827,14 +1859,16 @@
             _ ->
                 (Std_.pure (Brand'Binding'unknown' (Std_.fromIntegral tag)))
         )
-get_Brand'Binding' :: ((Untyped.ReadCtx m msg)) => (Brand'Binding msg) -> (m (Brand'Binding' msg))
+get_Brand'Binding' :: ((Untyped.ReadCtx m msg)
+                      ,(Classes.FromStruct msg (Brand'Binding' msg))) => (Brand'Binding msg) -> (m (Brand'Binding' msg))
 get_Brand'Binding' (Brand'Binding'newtype_ struct) = (Classes.fromStruct struct)
 set_Brand'Binding'unbound :: ((Untyped.RWCtx m s)) => (Brand'Binding (Message.MutMsg s)) -> (m ())
 set_Brand'Binding'unbound (Brand'Binding'newtype_ struct) = (do
     (GenHelpers.setWordField struct (0 :: Std_.Word16) 0 0 0)
     (Std_.pure ())
     )
-set_Brand'Binding'type_ :: ((Untyped.RWCtx m s)) => (Brand'Binding (Message.MutMsg s)) -> (Type (Message.MutMsg s)) -> (m ())
+set_Brand'Binding'type_ :: ((Untyped.RWCtx m s)
+                           ,(Classes.ToPtr s (Type (Message.MutMsg s)))) => (Brand'Binding (Message.MutMsg s)) -> (Type (Message.MutMsg s)) -> (m ())
 set_Brand'Binding'type_ (Brand'Binding'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (1 :: Std_.Word16) 0 0 0)
     (do
@@ -1846,8 +1880,6 @@
 set_Brand'Binding'unknown' (Brand'Binding'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 0 0 0)
 newtype Value msg
     = Value'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Value) where
-    tMsg f (Value'newtype_ s) = (Value'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Value msg)) where
     fromStruct struct = (Std_.pure (Value'newtype_ struct))
 instance (Classes.ToStruct msg (Value msg)) where
@@ -1957,7 +1989,8 @@
             _ ->
                 (Std_.pure (Value'unknown' (Std_.fromIntegral tag)))
         )
-get_Value' :: ((Untyped.ReadCtx m msg)) => (Value msg) -> (m (Value' msg))
+get_Value' :: ((Untyped.ReadCtx m msg)
+              ,(Classes.FromStruct msg (Value' msg))) => (Value msg) -> (m (Value' msg))
 get_Value' (Value'newtype_ struct) = (Classes.fromStruct struct)
 set_Value'void :: ((Untyped.RWCtx m s)) => (Value (Message.MutMsg s)) -> (m ())
 set_Value'void (Value'newtype_ struct) = (do
@@ -2019,7 +2052,8 @@
     (GenHelpers.setWordField struct (11 :: Std_.Word16) 0 0 0)
     (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word64) 1 0 0)
     )
-set_Value'text :: ((Untyped.RWCtx m s)) => (Value (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
+set_Value'text :: ((Untyped.RWCtx m s)
+                  ,(Classes.ToPtr s (Basics.Text (Message.MutMsg s)))) => (Value (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
 set_Value'text (Value'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (12 :: Std_.Word16) 0 0 0)
     (do
@@ -2027,7 +2061,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Value'data_ :: ((Untyped.RWCtx m s)) => (Value (Message.MutMsg s)) -> (Basics.Data (Message.MutMsg s)) -> (m ())
+set_Value'data_ :: ((Untyped.RWCtx m s)
+                   ,(Classes.ToPtr s (Basics.Data (Message.MutMsg s)))) => (Value (Message.MutMsg s)) -> (Basics.Data (Message.MutMsg s)) -> (m ())
 set_Value'data_ (Value'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (13 :: Std_.Word16) 0 0 0)
     (do
@@ -2035,7 +2070,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Value'list :: ((Untyped.RWCtx m s)) => (Value (Message.MutMsg s)) -> (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))) -> (m ())
+set_Value'list :: ((Untyped.RWCtx m s)
+                  ,(Classes.ToPtr s (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))))) => (Value (Message.MutMsg s)) -> (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))) -> (m ())
 set_Value'list (Value'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (14 :: Std_.Word16) 0 0 0)
     (do
@@ -2048,7 +2084,8 @@
     (GenHelpers.setWordField struct (15 :: Std_.Word16) 0 0 0)
     (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 0 16 0)
     )
-set_Value'struct :: ((Untyped.RWCtx m s)) => (Value (Message.MutMsg s)) -> (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))) -> (m ())
+set_Value'struct :: ((Untyped.RWCtx m s)
+                    ,(Classes.ToPtr s (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))))) => (Value (Message.MutMsg s)) -> (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))) -> (m ())
 set_Value'struct (Value'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (16 :: Std_.Word16) 0 0 0)
     (do
@@ -2061,7 +2098,8 @@
     (GenHelpers.setWordField struct (17 :: Std_.Word16) 0 0 0)
     (Std_.pure ())
     )
-set_Value'anyPointer :: ((Untyped.RWCtx m s)) => (Value (Message.MutMsg s)) -> (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))) -> (m ())
+set_Value'anyPointer :: ((Untyped.RWCtx m s)
+                        ,(Classes.ToPtr s (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))))) => (Value (Message.MutMsg s)) -> (Std_.Maybe (Untyped.Ptr (Message.MutMsg s))) -> (m ())
 set_Value'anyPointer (Value'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (18 :: Std_.Word16) 0 0 0)
     (do
@@ -2073,8 +2111,6 @@
 set_Value'unknown' (Value'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 0 0 0)
 newtype Annotation msg
     = Annotation'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Annotation) where
-    tMsg f (Annotation'newtype_ s) = (Annotation'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Annotation msg)) where
     fromStruct struct = (Std_.pure (Annotation'newtype_ struct))
 instance (Classes.ToStruct msg (Annotation msg)) where
@@ -2107,12 +2143,14 @@
 get_Annotation'id (Annotation'newtype_ struct) = (GenHelpers.getWordField struct 0 0 0)
 set_Annotation'id :: ((Untyped.RWCtx m s)) => (Annotation (Message.MutMsg s)) -> Std_.Word64 -> (m ())
 set_Annotation'id (Annotation'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word64) 0 0 0)
-get_Annotation'value :: ((Untyped.ReadCtx m msg)) => (Annotation msg) -> (m (Value msg))
+get_Annotation'value :: ((Untyped.ReadCtx m msg)
+                        ,(Classes.FromPtr msg (Value msg))) => (Annotation msg) -> (m (Value msg))
 get_Annotation'value (Annotation'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Annotation'value :: ((Untyped.RWCtx m s)) => (Annotation (Message.MutMsg s)) -> (Value (Message.MutMsg s)) -> (m ())
+set_Annotation'value :: ((Untyped.RWCtx m s)
+                        ,(Classes.ToPtr s (Value (Message.MutMsg s)))) => (Annotation (Message.MutMsg s)) -> (Value (Message.MutMsg s)) -> (m ())
 set_Annotation'value (Annotation'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -2125,12 +2163,14 @@
     (set_Annotation'value struct result)
     (Std_.pure result)
     )
-get_Annotation'brand :: ((Untyped.ReadCtx m msg)) => (Annotation msg) -> (m (Brand msg))
+get_Annotation'brand :: ((Untyped.ReadCtx m msg)
+                        ,(Classes.FromPtr msg (Brand msg))) => (Annotation msg) -> (m (Brand msg))
 get_Annotation'brand (Annotation'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 1 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Annotation'brand :: ((Untyped.RWCtx m s)) => (Annotation (Message.MutMsg s)) -> (Brand (Message.MutMsg s)) -> (m ())
+set_Annotation'brand :: ((Untyped.RWCtx m s)
+                        ,(Classes.ToPtr s (Brand (Message.MutMsg s)))) => (Annotation (Message.MutMsg s)) -> (Brand (Message.MutMsg s)) -> (m ())
 set_Annotation'brand (Annotation'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 1 struct)
@@ -2201,8 +2241,6 @@
     newList msg size = (ElementSize'List_ <$> (Untyped.allocList16 msg size))
 newtype CapnpVersion msg
     = CapnpVersion'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg CapnpVersion) where
-    tMsg f (CapnpVersion'newtype_ s) = (CapnpVersion'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (CapnpVersion msg)) where
     fromStruct struct = (Std_.pure (CapnpVersion'newtype_ struct))
 instance (Classes.ToStruct msg (CapnpVersion msg)) where
@@ -2245,8 +2283,6 @@
 set_CapnpVersion'micro (CapnpVersion'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word8) 0 24 0)
 newtype CodeGeneratorRequest msg
     = CodeGeneratorRequest'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg CodeGeneratorRequest) where
-    tMsg f (CodeGeneratorRequest'newtype_ s) = (CodeGeneratorRequest'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (CodeGeneratorRequest msg)) where
     fromStruct struct = (Std_.pure (CodeGeneratorRequest'newtype_ struct))
 instance (Classes.ToStruct msg (CodeGeneratorRequest msg)) where
@@ -2275,12 +2311,14 @@
 instance (Basics.MutListElem s (CodeGeneratorRequest (Message.MutMsg s))) where
     setIndex (CodeGeneratorRequest'newtype_ elt) i (CodeGeneratorRequest'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (CodeGeneratorRequest'List_ <$> (Untyped.allocCompositeList msg 0 4 len))
-get_CodeGeneratorRequest'nodes :: ((Untyped.ReadCtx m msg)) => (CodeGeneratorRequest msg) -> (m (Basics.List msg (Node msg)))
+get_CodeGeneratorRequest'nodes :: ((Untyped.ReadCtx m msg)
+                                  ,(Classes.FromPtr msg (Basics.List msg (Node msg)))) => (CodeGeneratorRequest msg) -> (m (Basics.List msg (Node msg)))
 get_CodeGeneratorRequest'nodes (CodeGeneratorRequest'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_CodeGeneratorRequest'nodes :: ((Untyped.RWCtx m s)) => (CodeGeneratorRequest (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Node (Message.MutMsg s))) -> (m ())
+set_CodeGeneratorRequest'nodes :: ((Untyped.RWCtx m s)
+                                  ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Node (Message.MutMsg s))))) => (CodeGeneratorRequest (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Node (Message.MutMsg s))) -> (m ())
 set_CodeGeneratorRequest'nodes (CodeGeneratorRequest'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -2293,12 +2331,14 @@
     (set_CodeGeneratorRequest'nodes struct result)
     (Std_.pure result)
     )
-get_CodeGeneratorRequest'requestedFiles :: ((Untyped.ReadCtx m msg)) => (CodeGeneratorRequest msg) -> (m (Basics.List msg (CodeGeneratorRequest'RequestedFile msg)))
+get_CodeGeneratorRequest'requestedFiles :: ((Untyped.ReadCtx m msg)
+                                           ,(Classes.FromPtr msg (Basics.List msg (CodeGeneratorRequest'RequestedFile msg)))) => (CodeGeneratorRequest msg) -> (m (Basics.List msg (CodeGeneratorRequest'RequestedFile msg)))
 get_CodeGeneratorRequest'requestedFiles (CodeGeneratorRequest'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 1 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_CodeGeneratorRequest'requestedFiles :: ((Untyped.RWCtx m s)) => (CodeGeneratorRequest (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (CodeGeneratorRequest'RequestedFile (Message.MutMsg s))) -> (m ())
+set_CodeGeneratorRequest'requestedFiles :: ((Untyped.RWCtx m s)
+                                           ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (CodeGeneratorRequest'RequestedFile (Message.MutMsg s))))) => (CodeGeneratorRequest (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (CodeGeneratorRequest'RequestedFile (Message.MutMsg s))) -> (m ())
 set_CodeGeneratorRequest'requestedFiles (CodeGeneratorRequest'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 1 struct)
@@ -2311,12 +2351,14 @@
     (set_CodeGeneratorRequest'requestedFiles struct result)
     (Std_.pure result)
     )
-get_CodeGeneratorRequest'capnpVersion :: ((Untyped.ReadCtx m msg)) => (CodeGeneratorRequest msg) -> (m (CapnpVersion msg))
+get_CodeGeneratorRequest'capnpVersion :: ((Untyped.ReadCtx m msg)
+                                         ,(Classes.FromPtr msg (CapnpVersion msg))) => (CodeGeneratorRequest msg) -> (m (CapnpVersion msg))
 get_CodeGeneratorRequest'capnpVersion (CodeGeneratorRequest'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 2 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_CodeGeneratorRequest'capnpVersion :: ((Untyped.RWCtx m s)) => (CodeGeneratorRequest (Message.MutMsg s)) -> (CapnpVersion (Message.MutMsg s)) -> (m ())
+set_CodeGeneratorRequest'capnpVersion :: ((Untyped.RWCtx m s)
+                                         ,(Classes.ToPtr s (CapnpVersion (Message.MutMsg s)))) => (CodeGeneratorRequest (Message.MutMsg s)) -> (CapnpVersion (Message.MutMsg s)) -> (m ())
 set_CodeGeneratorRequest'capnpVersion (CodeGeneratorRequest'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 2 struct)
@@ -2329,12 +2371,14 @@
     (set_CodeGeneratorRequest'capnpVersion struct result)
     (Std_.pure result)
     )
-get_CodeGeneratorRequest'sourceInfo :: ((Untyped.ReadCtx m msg)) => (CodeGeneratorRequest msg) -> (m (Basics.List msg (Node'SourceInfo msg)))
+get_CodeGeneratorRequest'sourceInfo :: ((Untyped.ReadCtx m msg)
+                                       ,(Classes.FromPtr msg (Basics.List msg (Node'SourceInfo msg)))) => (CodeGeneratorRequest msg) -> (m (Basics.List msg (Node'SourceInfo msg)))
 get_CodeGeneratorRequest'sourceInfo (CodeGeneratorRequest'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 3 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_CodeGeneratorRequest'sourceInfo :: ((Untyped.RWCtx m s)) => (CodeGeneratorRequest (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Node'SourceInfo (Message.MutMsg s))) -> (m ())
+set_CodeGeneratorRequest'sourceInfo :: ((Untyped.RWCtx m s)
+                                       ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Node'SourceInfo (Message.MutMsg s))))) => (CodeGeneratorRequest (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Node'SourceInfo (Message.MutMsg s))) -> (m ())
 set_CodeGeneratorRequest'sourceInfo (CodeGeneratorRequest'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 3 struct)
@@ -2349,8 +2393,6 @@
     )
 newtype CodeGeneratorRequest'RequestedFile msg
     = CodeGeneratorRequest'RequestedFile'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg CodeGeneratorRequest'RequestedFile) where
-    tMsg f (CodeGeneratorRequest'RequestedFile'newtype_ s) = (CodeGeneratorRequest'RequestedFile'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (CodeGeneratorRequest'RequestedFile msg)) where
     fromStruct struct = (Std_.pure (CodeGeneratorRequest'RequestedFile'newtype_ struct))
 instance (Classes.ToStruct msg (CodeGeneratorRequest'RequestedFile msg)) where
@@ -2383,12 +2425,14 @@
 get_CodeGeneratorRequest'RequestedFile'id (CodeGeneratorRequest'RequestedFile'newtype_ struct) = (GenHelpers.getWordField struct 0 0 0)
 set_CodeGeneratorRequest'RequestedFile'id :: ((Untyped.RWCtx m s)) => (CodeGeneratorRequest'RequestedFile (Message.MutMsg s)) -> Std_.Word64 -> (m ())
 set_CodeGeneratorRequest'RequestedFile'id (CodeGeneratorRequest'RequestedFile'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word64) 0 0 0)
-get_CodeGeneratorRequest'RequestedFile'filename :: ((Untyped.ReadCtx m msg)) => (CodeGeneratorRequest'RequestedFile msg) -> (m (Basics.Text msg))
+get_CodeGeneratorRequest'RequestedFile'filename :: ((Untyped.ReadCtx m msg)
+                                                   ,(Classes.FromPtr msg (Basics.Text msg))) => (CodeGeneratorRequest'RequestedFile msg) -> (m (Basics.Text msg))
 get_CodeGeneratorRequest'RequestedFile'filename (CodeGeneratorRequest'RequestedFile'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_CodeGeneratorRequest'RequestedFile'filename :: ((Untyped.RWCtx m s)) => (CodeGeneratorRequest'RequestedFile (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
+set_CodeGeneratorRequest'RequestedFile'filename :: ((Untyped.RWCtx m s)
+                                                   ,(Classes.ToPtr s (Basics.Text (Message.MutMsg s)))) => (CodeGeneratorRequest'RequestedFile (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
 set_CodeGeneratorRequest'RequestedFile'filename (CodeGeneratorRequest'RequestedFile'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -2401,12 +2445,14 @@
     (set_CodeGeneratorRequest'RequestedFile'filename struct result)
     (Std_.pure result)
     )
-get_CodeGeneratorRequest'RequestedFile'imports :: ((Untyped.ReadCtx m msg)) => (CodeGeneratorRequest'RequestedFile msg) -> (m (Basics.List msg (CodeGeneratorRequest'RequestedFile'Import msg)))
+get_CodeGeneratorRequest'RequestedFile'imports :: ((Untyped.ReadCtx m msg)
+                                                  ,(Classes.FromPtr msg (Basics.List msg (CodeGeneratorRequest'RequestedFile'Import msg)))) => (CodeGeneratorRequest'RequestedFile msg) -> (m (Basics.List msg (CodeGeneratorRequest'RequestedFile'Import msg)))
 get_CodeGeneratorRequest'RequestedFile'imports (CodeGeneratorRequest'RequestedFile'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 1 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_CodeGeneratorRequest'RequestedFile'imports :: ((Untyped.RWCtx m s)) => (CodeGeneratorRequest'RequestedFile (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (CodeGeneratorRequest'RequestedFile'Import (Message.MutMsg s))) -> (m ())
+set_CodeGeneratorRequest'RequestedFile'imports :: ((Untyped.RWCtx m s)
+                                                  ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (CodeGeneratorRequest'RequestedFile'Import (Message.MutMsg s))))) => (CodeGeneratorRequest'RequestedFile (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (CodeGeneratorRequest'RequestedFile'Import (Message.MutMsg s))) -> (m ())
 set_CodeGeneratorRequest'RequestedFile'imports (CodeGeneratorRequest'RequestedFile'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 1 struct)
@@ -2421,8 +2467,6 @@
     )
 newtype CodeGeneratorRequest'RequestedFile'Import msg
     = CodeGeneratorRequest'RequestedFile'Import'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg CodeGeneratorRequest'RequestedFile'Import) where
-    tMsg f (CodeGeneratorRequest'RequestedFile'Import'newtype_ s) = (CodeGeneratorRequest'RequestedFile'Import'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (CodeGeneratorRequest'RequestedFile'Import msg)) where
     fromStruct struct = (Std_.pure (CodeGeneratorRequest'RequestedFile'Import'newtype_ struct))
 instance (Classes.ToStruct msg (CodeGeneratorRequest'RequestedFile'Import msg)) where
@@ -2455,12 +2499,14 @@
 get_CodeGeneratorRequest'RequestedFile'Import'id (CodeGeneratorRequest'RequestedFile'Import'newtype_ struct) = (GenHelpers.getWordField struct 0 0 0)
 set_CodeGeneratorRequest'RequestedFile'Import'id :: ((Untyped.RWCtx m s)) => (CodeGeneratorRequest'RequestedFile'Import (Message.MutMsg s)) -> Std_.Word64 -> (m ())
 set_CodeGeneratorRequest'RequestedFile'Import'id (CodeGeneratorRequest'RequestedFile'Import'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word64) 0 0 0)
-get_CodeGeneratorRequest'RequestedFile'Import'name :: ((Untyped.ReadCtx m msg)) => (CodeGeneratorRequest'RequestedFile'Import msg) -> (m (Basics.Text msg))
+get_CodeGeneratorRequest'RequestedFile'Import'name :: ((Untyped.ReadCtx m msg)
+                                                      ,(Classes.FromPtr msg (Basics.Text msg))) => (CodeGeneratorRequest'RequestedFile'Import msg) -> (m (Basics.Text msg))
 get_CodeGeneratorRequest'RequestedFile'Import'name (CodeGeneratorRequest'RequestedFile'Import'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_CodeGeneratorRequest'RequestedFile'Import'name :: ((Untyped.RWCtx m s)) => (CodeGeneratorRequest'RequestedFile'Import (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
+set_CodeGeneratorRequest'RequestedFile'Import'name :: ((Untyped.RWCtx m s)
+                                                      ,(Classes.ToPtr s (Basics.Text (Message.MutMsg s)))) => (CodeGeneratorRequest'RequestedFile'Import (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
 set_CodeGeneratorRequest'RequestedFile'Import'name (CodeGeneratorRequest'RequestedFile'Import'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
diff --git a/gen/lib/Capnp/Gen/Capnp/Schema/Pure.hs b/gen/lib/Capnp/Gen/Capnp/Schema/Pure.hs
--- a/gen/lib/Capnp/Gen/Capnp/Schema/Pure.hs
+++ b/gen/lib/Capnp/Gen/Capnp/Schema/Pure.hs
@@ -2,9 +2,11 @@
 {-# LANGUAGE DuplicateRecordFields #-}
 {-# LANGUAGE FlexibleContexts #-}
 {-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE FunctionalDependencies #-}
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE UndecidableInstances #-}
 {-# OPTIONS_GHC -Wno-unused-imports #-}
 {-# OPTIONS_GHC -Wno-dodgy-exports #-}
 {-# OPTIONS_GHC -Wno-unused-matches #-}
@@ -80,12 +82,12 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Node) where
+instance (Default.Default (Node)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Node) where
+instance (Classes.FromStruct Message.ConstMsg (Node)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Node) where
-    type Cerial msg Node = (Capnp.Gen.ById.Xa93fc509624c72d9.Node msg)
+instance (Classes.Decerialize (Node)) where
+    type Cerial msg (Node) = (Capnp.Gen.ById.Xa93fc509624c72d9.Node msg)
     decerialize raw = (Node <$> (Capnp.Gen.ById.Xa93fc509624c72d9.get_Node'id raw)
                             <*> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Node'displayName raw) >>= Classes.decerialize)
                             <*> (Capnp.Gen.ById.Xa93fc509624c72d9.get_Node'displayNamePrefixLength raw)
@@ -95,7 +97,7 @@
                             <*> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Node'parameters raw) >>= Classes.decerialize)
                             <*> (Capnp.Gen.ById.Xa93fc509624c72d9.get_Node'isGeneric raw)
                             <*> (Classes.decerialize raw))
-instance (Classes.Marshal Node) where
+instance (Classes.Marshal s (Node)) where
     marshalInto raw_ value_ = case value_ of
         Node{..} ->
             (do
@@ -112,20 +114,20 @@
                     )
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Node)
-instance (Classes.Cerialize (V.Vector Node)) where
+instance (Classes.Cerialize s (Node))
+instance (Classes.Cerialize s (V.Vector (Node))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Node))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Node)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Node)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Node))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Node))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Node)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Node)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Node))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Node))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Node)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Node)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Node))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Node' 
     = Node'file 
@@ -138,12 +140,12 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Node') where
+instance (Default.Default (Node')) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Node') where
+instance (Classes.FromStruct Message.ConstMsg (Node')) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Node') where
-    type Cerial msg Node' = (Capnp.Gen.ById.Xa93fc509624c72d9.Node msg)
+instance (Classes.Decerialize (Node')) where
+    type Cerial msg (Node') = (Capnp.Gen.ById.Xa93fc509624c72d9.Node msg)
     decerialize raw = (do
         raw <- (Capnp.Gen.ById.Xa93fc509624c72d9.get_Node' raw)
         case raw of
@@ -162,7 +164,7 @@
             (Capnp.Gen.ById.Xa93fc509624c72d9.Node'unknown' tag) ->
                 (Std_.pure (Node'unknown' tag))
         )
-instance (Classes.Marshal Node') where
+instance (Classes.Marshal s (Node')) where
     marshalInto raw_ value_ = case value_ of
         (Node'file) ->
             (Capnp.Gen.ById.Xa93fc509624c72d9.set_Node'file raw_)
@@ -205,12 +207,12 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Node'struct) where
+instance (Default.Default (Node'struct)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Node'struct) where
+instance (Classes.FromStruct Message.ConstMsg (Node'struct)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Node'struct) where
-    type Cerial msg Node'struct = (Capnp.Gen.ById.Xa93fc509624c72d9.Node'struct msg)
+instance (Classes.Decerialize (Node'struct)) where
+    type Cerial msg (Node'struct) = (Capnp.Gen.ById.Xa93fc509624c72d9.Node'struct msg)
     decerialize raw = (Node'struct' <$> (Capnp.Gen.ById.Xa93fc509624c72d9.get_Node'struct'dataWordCount raw)
                                     <*> (Capnp.Gen.ById.Xa93fc509624c72d9.get_Node'struct'pointerCount raw)
                                     <*> (Capnp.Gen.ById.Xa93fc509624c72d9.get_Node'struct'preferredListEncoding raw)
@@ -218,7 +220,7 @@
                                     <*> (Capnp.Gen.ById.Xa93fc509624c72d9.get_Node'struct'discriminantCount raw)
                                     <*> (Capnp.Gen.ById.Xa93fc509624c72d9.get_Node'struct'discriminantOffset raw)
                                     <*> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Node'struct'fields raw) >>= Classes.decerialize))
-instance (Classes.Marshal Node'struct) where
+instance (Classes.Marshal s (Node'struct)) where
     marshalInto raw_ value_ = case value_ of
         Node'struct'{..} ->
             (do
@@ -237,14 +239,14 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Node'enum) where
+instance (Default.Default (Node'enum)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Node'enum) where
+instance (Classes.FromStruct Message.ConstMsg (Node'enum)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Node'enum) where
-    type Cerial msg Node'enum = (Capnp.Gen.ById.Xa93fc509624c72d9.Node'enum msg)
+instance (Classes.Decerialize (Node'enum)) where
+    type Cerial msg (Node'enum) = (Capnp.Gen.ById.Xa93fc509624c72d9.Node'enum msg)
     decerialize raw = (Node'enum' <$> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Node'enum'enumerants raw) >>= Classes.decerialize))
-instance (Classes.Marshal Node'enum) where
+instance (Classes.Marshal s (Node'enum)) where
     marshalInto raw_ value_ = case value_ of
         Node'enum'{..} ->
             (do
@@ -258,15 +260,15 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Node'interface) where
+instance (Default.Default (Node'interface)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Node'interface) where
+instance (Classes.FromStruct Message.ConstMsg (Node'interface)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Node'interface) where
-    type Cerial msg Node'interface = (Capnp.Gen.ById.Xa93fc509624c72d9.Node'interface msg)
+instance (Classes.Decerialize (Node'interface)) where
+    type Cerial msg (Node'interface) = (Capnp.Gen.ById.Xa93fc509624c72d9.Node'interface msg)
     decerialize raw = (Node'interface' <$> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Node'interface'methods raw) >>= Classes.decerialize)
                                        <*> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Node'interface'superclasses raw) >>= Classes.decerialize))
-instance (Classes.Marshal Node'interface) where
+instance (Classes.Marshal s (Node'interface)) where
     marshalInto raw_ value_ = case value_ of
         Node'interface'{..} ->
             (do
@@ -281,15 +283,15 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Node'const) where
+instance (Default.Default (Node'const)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Node'const) where
+instance (Classes.FromStruct Message.ConstMsg (Node'const)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Node'const) where
-    type Cerial msg Node'const = (Capnp.Gen.ById.Xa93fc509624c72d9.Node'const msg)
+instance (Classes.Decerialize (Node'const)) where
+    type Cerial msg (Node'const) = (Capnp.Gen.ById.Xa93fc509624c72d9.Node'const msg)
     decerialize raw = (Node'const' <$> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Node'const'type_ raw) >>= Classes.decerialize)
                                    <*> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Node'const'value raw) >>= Classes.decerialize))
-instance (Classes.Marshal Node'const) where
+instance (Classes.Marshal s (Node'const)) where
     marshalInto raw_ value_ = case value_ of
         Node'const'{..} ->
             (do
@@ -315,12 +317,12 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Node'annotation) where
+instance (Default.Default (Node'annotation)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Node'annotation) where
+instance (Classes.FromStruct Message.ConstMsg (Node'annotation)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Node'annotation) where
-    type Cerial msg Node'annotation = (Capnp.Gen.ById.Xa93fc509624c72d9.Node'annotation msg)
+instance (Classes.Decerialize (Node'annotation)) where
+    type Cerial msg (Node'annotation) = (Capnp.Gen.ById.Xa93fc509624c72d9.Node'annotation msg)
     decerialize raw = (Node'annotation' <$> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Node'annotation'type_ raw) >>= Classes.decerialize)
                                         <*> (Capnp.Gen.ById.Xa93fc509624c72d9.get_Node'annotation'targetsFile raw)
                                         <*> (Capnp.Gen.ById.Xa93fc509624c72d9.get_Node'annotation'targetsConst raw)
@@ -334,7 +336,7 @@
                                         <*> (Capnp.Gen.ById.Xa93fc509624c72d9.get_Node'annotation'targetsMethod raw)
                                         <*> (Capnp.Gen.ById.Xa93fc509624c72d9.get_Node'annotation'targetsParam raw)
                                         <*> (Capnp.Gen.ById.Xa93fc509624c72d9.get_Node'annotation'targetsAnnotation raw))
-instance (Classes.Marshal Node'annotation) where
+instance (Classes.Marshal s (Node'annotation)) where
     marshalInto raw_ value_ = case value_ of
         Node'annotation'{..} ->
             (do
@@ -359,34 +361,34 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Node'Parameter) where
+instance (Default.Default (Node'Parameter)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Node'Parameter) where
+instance (Classes.FromStruct Message.ConstMsg (Node'Parameter)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Node'Parameter) where
-    type Cerial msg Node'Parameter = (Capnp.Gen.ById.Xa93fc509624c72d9.Node'Parameter msg)
+instance (Classes.Decerialize (Node'Parameter)) where
+    type Cerial msg (Node'Parameter) = (Capnp.Gen.ById.Xa93fc509624c72d9.Node'Parameter msg)
     decerialize raw = (Node'Parameter <$> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Node'Parameter'name raw) >>= Classes.decerialize))
-instance (Classes.Marshal Node'Parameter) where
+instance (Classes.Marshal s (Node'Parameter)) where
     marshalInto raw_ value_ = case value_ of
         Node'Parameter{..} ->
             (do
                 ((Classes.cerialize (Untyped.message raw_) name) >>= (Capnp.Gen.ById.Xa93fc509624c72d9.set_Node'Parameter'name raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Node'Parameter)
-instance (Classes.Cerialize (V.Vector Node'Parameter)) where
+instance (Classes.Cerialize s (Node'Parameter))
+instance (Classes.Cerialize s (V.Vector (Node'Parameter))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Node'Parameter))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Node'Parameter)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Node'Parameter)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Node'Parameter))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Node'Parameter))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Node'Parameter)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Node'Parameter)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Node'Parameter))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Node'Parameter))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Node'Parameter)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Node'Parameter)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Node'Parameter))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Node'NestedNode 
     = Node'NestedNode 
@@ -395,15 +397,15 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Node'NestedNode) where
+instance (Default.Default (Node'NestedNode)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Node'NestedNode) where
+instance (Classes.FromStruct Message.ConstMsg (Node'NestedNode)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Node'NestedNode) where
-    type Cerial msg Node'NestedNode = (Capnp.Gen.ById.Xa93fc509624c72d9.Node'NestedNode msg)
+instance (Classes.Decerialize (Node'NestedNode)) where
+    type Cerial msg (Node'NestedNode) = (Capnp.Gen.ById.Xa93fc509624c72d9.Node'NestedNode msg)
     decerialize raw = (Node'NestedNode <$> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Node'NestedNode'name raw) >>= Classes.decerialize)
                                        <*> (Capnp.Gen.ById.Xa93fc509624c72d9.get_Node'NestedNode'id raw))
-instance (Classes.Marshal Node'NestedNode) where
+instance (Classes.Marshal s (Node'NestedNode)) where
     marshalInto raw_ value_ = case value_ of
         Node'NestedNode{..} ->
             (do
@@ -411,20 +413,20 @@
                 (Capnp.Gen.ById.Xa93fc509624c72d9.set_Node'NestedNode'id raw_ id)
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Node'NestedNode)
-instance (Classes.Cerialize (V.Vector Node'NestedNode)) where
+instance (Classes.Cerialize s (Node'NestedNode))
+instance (Classes.Cerialize s (V.Vector (Node'NestedNode))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Node'NestedNode))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Node'NestedNode)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Node'NestedNode)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Node'NestedNode))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Node'NestedNode))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Node'NestedNode)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Node'NestedNode)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Node'NestedNode))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Node'NestedNode))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Node'NestedNode)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Node'NestedNode)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Node'NestedNode))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Node'SourceInfo 
     = Node'SourceInfo 
@@ -434,16 +436,16 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Node'SourceInfo) where
+instance (Default.Default (Node'SourceInfo)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Node'SourceInfo) where
+instance (Classes.FromStruct Message.ConstMsg (Node'SourceInfo)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Node'SourceInfo) where
-    type Cerial msg Node'SourceInfo = (Capnp.Gen.ById.Xa93fc509624c72d9.Node'SourceInfo msg)
+instance (Classes.Decerialize (Node'SourceInfo)) where
+    type Cerial msg (Node'SourceInfo) = (Capnp.Gen.ById.Xa93fc509624c72d9.Node'SourceInfo msg)
     decerialize raw = (Node'SourceInfo <$> (Capnp.Gen.ById.Xa93fc509624c72d9.get_Node'SourceInfo'id raw)
                                        <*> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Node'SourceInfo'docComment raw) >>= Classes.decerialize)
                                        <*> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Node'SourceInfo'members raw) >>= Classes.decerialize))
-instance (Classes.Marshal Node'SourceInfo) where
+instance (Classes.Marshal s (Node'SourceInfo)) where
     marshalInto raw_ value_ = case value_ of
         Node'SourceInfo{..} ->
             (do
@@ -452,20 +454,20 @@
                 ((Classes.cerialize (Untyped.message raw_) members) >>= (Capnp.Gen.ById.Xa93fc509624c72d9.set_Node'SourceInfo'members raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Node'SourceInfo)
-instance (Classes.Cerialize (V.Vector Node'SourceInfo)) where
+instance (Classes.Cerialize s (Node'SourceInfo))
+instance (Classes.Cerialize s (V.Vector (Node'SourceInfo))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Node'SourceInfo))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Node'SourceInfo)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Node'SourceInfo)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Node'SourceInfo))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Node'SourceInfo))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Node'SourceInfo)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Node'SourceInfo)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Node'SourceInfo))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Node'SourceInfo))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Node'SourceInfo)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Node'SourceInfo)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Node'SourceInfo))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Node'SourceInfo'Member 
     = Node'SourceInfo'Member 
@@ -473,34 +475,34 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Node'SourceInfo'Member) where
+instance (Default.Default (Node'SourceInfo'Member)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Node'SourceInfo'Member) where
+instance (Classes.FromStruct Message.ConstMsg (Node'SourceInfo'Member)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Node'SourceInfo'Member) where
-    type Cerial msg Node'SourceInfo'Member = (Capnp.Gen.ById.Xa93fc509624c72d9.Node'SourceInfo'Member msg)
+instance (Classes.Decerialize (Node'SourceInfo'Member)) where
+    type Cerial msg (Node'SourceInfo'Member) = (Capnp.Gen.ById.Xa93fc509624c72d9.Node'SourceInfo'Member msg)
     decerialize raw = (Node'SourceInfo'Member <$> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Node'SourceInfo'Member'docComment raw) >>= Classes.decerialize))
-instance (Classes.Marshal Node'SourceInfo'Member) where
+instance (Classes.Marshal s (Node'SourceInfo'Member)) where
     marshalInto raw_ value_ = case value_ of
         Node'SourceInfo'Member{..} ->
             (do
                 ((Classes.cerialize (Untyped.message raw_) docComment) >>= (Capnp.Gen.ById.Xa93fc509624c72d9.set_Node'SourceInfo'Member'docComment raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Node'SourceInfo'Member)
-instance (Classes.Cerialize (V.Vector Node'SourceInfo'Member)) where
+instance (Classes.Cerialize s (Node'SourceInfo'Member))
+instance (Classes.Cerialize s (V.Vector (Node'SourceInfo'Member))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Node'SourceInfo'Member))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Node'SourceInfo'Member)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Node'SourceInfo'Member)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Node'SourceInfo'Member))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Node'SourceInfo'Member))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Node'SourceInfo'Member)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Node'SourceInfo'Member)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Node'SourceInfo'Member))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Node'SourceInfo'Member))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Node'SourceInfo'Member)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Node'SourceInfo'Member)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Node'SourceInfo'Member))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Field 
     = Field 
@@ -513,19 +515,19 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Field) where
+instance (Default.Default (Field)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Field) where
+instance (Classes.FromStruct Message.ConstMsg (Field)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Field) where
-    type Cerial msg Field = (Capnp.Gen.ById.Xa93fc509624c72d9.Field msg)
+instance (Classes.Decerialize (Field)) where
+    type Cerial msg (Field) = (Capnp.Gen.ById.Xa93fc509624c72d9.Field msg)
     decerialize raw = (Field <$> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Field'name raw) >>= Classes.decerialize)
                              <*> (Capnp.Gen.ById.Xa93fc509624c72d9.get_Field'codeOrder raw)
                              <*> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Field'annotations raw) >>= Classes.decerialize)
                              <*> (Capnp.Gen.ById.Xa93fc509624c72d9.get_Field'discriminantValue raw)
                              <*> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Field'ordinal raw) >>= Classes.decerialize)
                              <*> (Classes.decerialize raw))
-instance (Classes.Marshal Field) where
+instance (Classes.Marshal s (Field)) where
     marshalInto raw_ value_ = case value_ of
         Field{..} ->
             (do
@@ -542,20 +544,20 @@
                     )
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Field)
-instance (Classes.Cerialize (V.Vector Field)) where
+instance (Classes.Cerialize s (Field))
+instance (Classes.Cerialize s (V.Vector (Field))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Field))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Field)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Field)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Field))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Field))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Field)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Field)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Field))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Field))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Field)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Field)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Field))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Field' 
     = Field'slot Field'slot
@@ -564,12 +566,12 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Field') where
+instance (Default.Default (Field')) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Field') where
+instance (Classes.FromStruct Message.ConstMsg (Field')) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Field') where
-    type Cerial msg Field' = (Capnp.Gen.ById.Xa93fc509624c72d9.Field msg)
+instance (Classes.Decerialize (Field')) where
+    type Cerial msg (Field') = (Capnp.Gen.ById.Xa93fc509624c72d9.Field msg)
     decerialize raw = (do
         raw <- (Capnp.Gen.ById.Xa93fc509624c72d9.get_Field' raw)
         case raw of
@@ -580,7 +582,7 @@
             (Capnp.Gen.ById.Xa93fc509624c72d9.Field'unknown' tag) ->
                 (Std_.pure (Field'unknown' tag))
         )
-instance (Classes.Marshal Field') where
+instance (Classes.Marshal s (Field')) where
     marshalInto raw_ value_ = case value_ of
         (Field'slot arg_) ->
             (do
@@ -603,17 +605,17 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Field'slot) where
+instance (Default.Default (Field'slot)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Field'slot) where
+instance (Classes.FromStruct Message.ConstMsg (Field'slot)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Field'slot) where
-    type Cerial msg Field'slot = (Capnp.Gen.ById.Xa93fc509624c72d9.Field'slot msg)
+instance (Classes.Decerialize (Field'slot)) where
+    type Cerial msg (Field'slot) = (Capnp.Gen.ById.Xa93fc509624c72d9.Field'slot msg)
     decerialize raw = (Field'slot' <$> (Capnp.Gen.ById.Xa93fc509624c72d9.get_Field'slot'offset raw)
                                    <*> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Field'slot'type_ raw) >>= Classes.decerialize)
                                    <*> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Field'slot'defaultValue raw) >>= Classes.decerialize)
                                    <*> (Capnp.Gen.ById.Xa93fc509624c72d9.get_Field'slot'hadExplicitDefault raw))
-instance (Classes.Marshal Field'slot) where
+instance (Classes.Marshal s (Field'slot)) where
     marshalInto raw_ value_ = case value_ of
         Field'slot'{..} ->
             (do
@@ -629,14 +631,14 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Field'group) where
+instance (Default.Default (Field'group)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Field'group) where
+instance (Classes.FromStruct Message.ConstMsg (Field'group)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Field'group) where
-    type Cerial msg Field'group = (Capnp.Gen.ById.Xa93fc509624c72d9.Field'group msg)
+instance (Classes.Decerialize (Field'group)) where
+    type Cerial msg (Field'group) = (Capnp.Gen.ById.Xa93fc509624c72d9.Field'group msg)
     decerialize raw = (Field'group' <$> (Capnp.Gen.ById.Xa93fc509624c72d9.get_Field'group'typeId raw))
-instance (Classes.Marshal Field'group) where
+instance (Classes.Marshal s (Field'group)) where
     marshalInto raw_ value_ = case value_ of
         Field'group'{..} ->
             (do
@@ -650,12 +652,12 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Field'ordinal) where
+instance (Default.Default (Field'ordinal)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Field'ordinal) where
+instance (Classes.FromStruct Message.ConstMsg (Field'ordinal)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Field'ordinal) where
-    type Cerial msg Field'ordinal = (Capnp.Gen.ById.Xa93fc509624c72d9.Field'ordinal msg)
+instance (Classes.Decerialize (Field'ordinal)) where
+    type Cerial msg (Field'ordinal) = (Capnp.Gen.ById.Xa93fc509624c72d9.Field'ordinal msg)
     decerialize raw = (do
         raw <- (Capnp.Gen.ById.Xa93fc509624c72d9.get_Field'ordinal' raw)
         case raw of
@@ -666,7 +668,7 @@
             (Capnp.Gen.ById.Xa93fc509624c72d9.Field'ordinal'unknown' tag) ->
                 (Std_.pure (Field'ordinal'unknown' tag))
         )
-instance (Classes.Marshal Field'ordinal) where
+instance (Classes.Marshal s (Field'ordinal)) where
     marshalInto raw_ value_ = case value_ of
         (Field'ordinal'implicit) ->
             (Capnp.Gen.ById.Xa93fc509624c72d9.set_Field'ordinal'implicit raw_)
@@ -682,16 +684,16 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Enumerant) where
+instance (Default.Default (Enumerant)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Enumerant) where
+instance (Classes.FromStruct Message.ConstMsg (Enumerant)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Enumerant) where
-    type Cerial msg Enumerant = (Capnp.Gen.ById.Xa93fc509624c72d9.Enumerant msg)
+instance (Classes.Decerialize (Enumerant)) where
+    type Cerial msg (Enumerant) = (Capnp.Gen.ById.Xa93fc509624c72d9.Enumerant msg)
     decerialize raw = (Enumerant <$> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Enumerant'name raw) >>= Classes.decerialize)
                                  <*> (Capnp.Gen.ById.Xa93fc509624c72d9.get_Enumerant'codeOrder raw)
                                  <*> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Enumerant'annotations raw) >>= Classes.decerialize))
-instance (Classes.Marshal Enumerant) where
+instance (Classes.Marshal s (Enumerant)) where
     marshalInto raw_ value_ = case value_ of
         Enumerant{..} ->
             (do
@@ -700,20 +702,20 @@
                 ((Classes.cerialize (Untyped.message raw_) annotations) >>= (Capnp.Gen.ById.Xa93fc509624c72d9.set_Enumerant'annotations raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Enumerant)
-instance (Classes.Cerialize (V.Vector Enumerant)) where
+instance (Classes.Cerialize s (Enumerant))
+instance (Classes.Cerialize s (V.Vector (Enumerant))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Enumerant))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Enumerant)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Enumerant)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Enumerant))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Enumerant))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Enumerant)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Enumerant)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Enumerant))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Enumerant))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Enumerant)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Enumerant)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Enumerant))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Superclass 
     = Superclass 
@@ -722,15 +724,15 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Superclass) where
+instance (Default.Default (Superclass)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Superclass) where
+instance (Classes.FromStruct Message.ConstMsg (Superclass)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Superclass) where
-    type Cerial msg Superclass = (Capnp.Gen.ById.Xa93fc509624c72d9.Superclass msg)
+instance (Classes.Decerialize (Superclass)) where
+    type Cerial msg (Superclass) = (Capnp.Gen.ById.Xa93fc509624c72d9.Superclass msg)
     decerialize raw = (Superclass <$> (Capnp.Gen.ById.Xa93fc509624c72d9.get_Superclass'id raw)
                                   <*> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Superclass'brand raw) >>= Classes.decerialize))
-instance (Classes.Marshal Superclass) where
+instance (Classes.Marshal s (Superclass)) where
     marshalInto raw_ value_ = case value_ of
         Superclass{..} ->
             (do
@@ -738,20 +740,20 @@
                 ((Classes.cerialize (Untyped.message raw_) brand) >>= (Capnp.Gen.ById.Xa93fc509624c72d9.set_Superclass'brand raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Superclass)
-instance (Classes.Cerialize (V.Vector Superclass)) where
+instance (Classes.Cerialize s (Superclass))
+instance (Classes.Cerialize s (V.Vector (Superclass))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Superclass))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Superclass)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Superclass)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Superclass))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Superclass))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Superclass)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Superclass)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Superclass))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Superclass))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Superclass)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Superclass)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Superclass))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Method 
     = Method 
@@ -766,12 +768,12 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Method) where
+instance (Default.Default (Method)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Method) where
+instance (Classes.FromStruct Message.ConstMsg (Method)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Method) where
-    type Cerial msg Method = (Capnp.Gen.ById.Xa93fc509624c72d9.Method msg)
+instance (Classes.Decerialize (Method)) where
+    type Cerial msg (Method) = (Capnp.Gen.ById.Xa93fc509624c72d9.Method msg)
     decerialize raw = (Method <$> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Method'name raw) >>= Classes.decerialize)
                               <*> (Capnp.Gen.ById.Xa93fc509624c72d9.get_Method'codeOrder raw)
                               <*> (Capnp.Gen.ById.Xa93fc509624c72d9.get_Method'paramStructType raw)
@@ -780,7 +782,7 @@
                               <*> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Method'paramBrand raw) >>= Classes.decerialize)
                               <*> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Method'resultBrand raw) >>= Classes.decerialize)
                               <*> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Method'implicitParameters raw) >>= Classes.decerialize))
-instance (Classes.Marshal Method) where
+instance (Classes.Marshal s (Method)) where
     marshalInto raw_ value_ = case value_ of
         Method{..} ->
             (do
@@ -794,20 +796,20 @@
                 ((Classes.cerialize (Untyped.message raw_) implicitParameters) >>= (Capnp.Gen.ById.Xa93fc509624c72d9.set_Method'implicitParameters raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Method)
-instance (Classes.Cerialize (V.Vector Method)) where
+instance (Classes.Cerialize s (Method))
+instance (Classes.Cerialize s (V.Vector (Method))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Method))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Method)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Method)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Method))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Method))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Method)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Method)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Method))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Method))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Method)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Method)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Method))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Type 
     = Type'void 
@@ -833,12 +835,12 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Type) where
+instance (Default.Default (Type)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Type) where
+instance (Classes.FromStruct Message.ConstMsg (Type)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Type) where
-    type Cerial msg Type = (Capnp.Gen.ById.Xa93fc509624c72d9.Type msg)
+instance (Classes.Decerialize (Type)) where
+    type Cerial msg (Type) = (Capnp.Gen.ById.Xa93fc509624c72d9.Type msg)
     decerialize raw = (do
         raw <- (Capnp.Gen.ById.Xa93fc509624c72d9.get_Type' raw)
         case raw of
@@ -883,7 +885,7 @@
             (Capnp.Gen.ById.Xa93fc509624c72d9.Type'unknown' tag) ->
                 (Std_.pure (Type'unknown' tag))
         )
-instance (Classes.Marshal Type) where
+instance (Classes.Marshal s (Type)) where
     marshalInto raw_ value_ = case value_ of
         (Type'void) ->
             (Capnp.Gen.ById.Xa93fc509624c72d9.set_Type'void raw_)
@@ -940,20 +942,20 @@
                 )
         (Type'unknown' tag) ->
             (Capnp.Gen.ById.Xa93fc509624c72d9.set_Type'unknown' raw_ tag)
-instance (Classes.Cerialize Type)
-instance (Classes.Cerialize (V.Vector Type)) where
+instance (Classes.Cerialize s (Type))
+instance (Classes.Cerialize s (V.Vector (Type))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Type))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Type)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Type)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Type))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Type))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Type)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Type)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Type))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Type))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Type)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Type)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Type))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Type'list 
     = Type'list' 
@@ -961,14 +963,14 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Type'list) where
+instance (Default.Default (Type'list)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Type'list) where
+instance (Classes.FromStruct Message.ConstMsg (Type'list)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Type'list) where
-    type Cerial msg Type'list = (Capnp.Gen.ById.Xa93fc509624c72d9.Type'list msg)
+instance (Classes.Decerialize (Type'list)) where
+    type Cerial msg (Type'list) = (Capnp.Gen.ById.Xa93fc509624c72d9.Type'list msg)
     decerialize raw = (Type'list' <$> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Type'list'elementType raw) >>= Classes.decerialize))
-instance (Classes.Marshal Type'list) where
+instance (Classes.Marshal s (Type'list)) where
     marshalInto raw_ value_ = case value_ of
         Type'list'{..} ->
             (do
@@ -982,15 +984,15 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Type'enum) where
+instance (Default.Default (Type'enum)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Type'enum) where
+instance (Classes.FromStruct Message.ConstMsg (Type'enum)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Type'enum) where
-    type Cerial msg Type'enum = (Capnp.Gen.ById.Xa93fc509624c72d9.Type'enum msg)
+instance (Classes.Decerialize (Type'enum)) where
+    type Cerial msg (Type'enum) = (Capnp.Gen.ById.Xa93fc509624c72d9.Type'enum msg)
     decerialize raw = (Type'enum' <$> (Capnp.Gen.ById.Xa93fc509624c72d9.get_Type'enum'typeId raw)
                                   <*> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Type'enum'brand raw) >>= Classes.decerialize))
-instance (Classes.Marshal Type'enum) where
+instance (Classes.Marshal s (Type'enum)) where
     marshalInto raw_ value_ = case value_ of
         Type'enum'{..} ->
             (do
@@ -1005,15 +1007,15 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Type'struct) where
+instance (Default.Default (Type'struct)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Type'struct) where
+instance (Classes.FromStruct Message.ConstMsg (Type'struct)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Type'struct) where
-    type Cerial msg Type'struct = (Capnp.Gen.ById.Xa93fc509624c72d9.Type'struct msg)
+instance (Classes.Decerialize (Type'struct)) where
+    type Cerial msg (Type'struct) = (Capnp.Gen.ById.Xa93fc509624c72d9.Type'struct msg)
     decerialize raw = (Type'struct' <$> (Capnp.Gen.ById.Xa93fc509624c72d9.get_Type'struct'typeId raw)
                                     <*> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Type'struct'brand raw) >>= Classes.decerialize))
-instance (Classes.Marshal Type'struct) where
+instance (Classes.Marshal s (Type'struct)) where
     marshalInto raw_ value_ = case value_ of
         Type'struct'{..} ->
             (do
@@ -1028,15 +1030,15 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Type'interface) where
+instance (Default.Default (Type'interface)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Type'interface) where
+instance (Classes.FromStruct Message.ConstMsg (Type'interface)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Type'interface) where
-    type Cerial msg Type'interface = (Capnp.Gen.ById.Xa93fc509624c72d9.Type'interface msg)
+instance (Classes.Decerialize (Type'interface)) where
+    type Cerial msg (Type'interface) = (Capnp.Gen.ById.Xa93fc509624c72d9.Type'interface msg)
     decerialize raw = (Type'interface' <$> (Capnp.Gen.ById.Xa93fc509624c72d9.get_Type'interface'typeId raw)
                                        <*> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Type'interface'brand raw) >>= Classes.decerialize))
-instance (Classes.Marshal Type'interface) where
+instance (Classes.Marshal s (Type'interface)) where
     marshalInto raw_ value_ = case value_ of
         Type'interface'{..} ->
             (do
@@ -1052,12 +1054,12 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Type'anyPointer) where
+instance (Default.Default (Type'anyPointer)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Type'anyPointer) where
+instance (Classes.FromStruct Message.ConstMsg (Type'anyPointer)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Type'anyPointer) where
-    type Cerial msg Type'anyPointer = (Capnp.Gen.ById.Xa93fc509624c72d9.Type'anyPointer msg)
+instance (Classes.Decerialize (Type'anyPointer)) where
+    type Cerial msg (Type'anyPointer) = (Capnp.Gen.ById.Xa93fc509624c72d9.Type'anyPointer msg)
     decerialize raw = (do
         raw <- (Capnp.Gen.ById.Xa93fc509624c72d9.get_Type'anyPointer' raw)
         case raw of
@@ -1070,7 +1072,7 @@
             (Capnp.Gen.ById.Xa93fc509624c72d9.Type'anyPointer'unknown' tag) ->
                 (Std_.pure (Type'anyPointer'unknown' tag))
         )
-instance (Classes.Marshal Type'anyPointer) where
+instance (Classes.Marshal s (Type'anyPointer)) where
     marshalInto raw_ value_ = case value_ of
         (Type'anyPointer'unconstrained arg_) ->
             (do
@@ -1098,12 +1100,12 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Type'anyPointer'unconstrained) where
+instance (Default.Default (Type'anyPointer'unconstrained)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Type'anyPointer'unconstrained) where
+instance (Classes.FromStruct Message.ConstMsg (Type'anyPointer'unconstrained)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Type'anyPointer'unconstrained) where
-    type Cerial msg Type'anyPointer'unconstrained = (Capnp.Gen.ById.Xa93fc509624c72d9.Type'anyPointer'unconstrained msg)
+instance (Classes.Decerialize (Type'anyPointer'unconstrained)) where
+    type Cerial msg (Type'anyPointer'unconstrained) = (Capnp.Gen.ById.Xa93fc509624c72d9.Type'anyPointer'unconstrained msg)
     decerialize raw = (do
         raw <- (Capnp.Gen.ById.Xa93fc509624c72d9.get_Type'anyPointer'unconstrained' raw)
         case raw of
@@ -1118,7 +1120,7 @@
             (Capnp.Gen.ById.Xa93fc509624c72d9.Type'anyPointer'unconstrained'unknown' tag) ->
                 (Std_.pure (Type'anyPointer'unconstrained'unknown' tag))
         )
-instance (Classes.Marshal Type'anyPointer'unconstrained) where
+instance (Classes.Marshal s (Type'anyPointer'unconstrained)) where
     marshalInto raw_ value_ = case value_ of
         (Type'anyPointer'unconstrained'anyKind) ->
             (Capnp.Gen.ById.Xa93fc509624c72d9.set_Type'anyPointer'unconstrained'anyKind raw_)
@@ -1137,15 +1139,15 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Type'anyPointer'parameter) where
+instance (Default.Default (Type'anyPointer'parameter)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Type'anyPointer'parameter) where
+instance (Classes.FromStruct Message.ConstMsg (Type'anyPointer'parameter)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Type'anyPointer'parameter) where
-    type Cerial msg Type'anyPointer'parameter = (Capnp.Gen.ById.Xa93fc509624c72d9.Type'anyPointer'parameter msg)
+instance (Classes.Decerialize (Type'anyPointer'parameter)) where
+    type Cerial msg (Type'anyPointer'parameter) = (Capnp.Gen.ById.Xa93fc509624c72d9.Type'anyPointer'parameter msg)
     decerialize raw = (Type'anyPointer'parameter' <$> (Capnp.Gen.ById.Xa93fc509624c72d9.get_Type'anyPointer'parameter'scopeId raw)
                                                   <*> (Capnp.Gen.ById.Xa93fc509624c72d9.get_Type'anyPointer'parameter'parameterIndex raw))
-instance (Classes.Marshal Type'anyPointer'parameter) where
+instance (Classes.Marshal s (Type'anyPointer'parameter)) where
     marshalInto raw_ value_ = case value_ of
         Type'anyPointer'parameter'{..} ->
             (do
@@ -1159,14 +1161,14 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Type'anyPointer'implicitMethodParameter) where
+instance (Default.Default (Type'anyPointer'implicitMethodParameter)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Type'anyPointer'implicitMethodParameter) where
+instance (Classes.FromStruct Message.ConstMsg (Type'anyPointer'implicitMethodParameter)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Type'anyPointer'implicitMethodParameter) where
-    type Cerial msg Type'anyPointer'implicitMethodParameter = (Capnp.Gen.ById.Xa93fc509624c72d9.Type'anyPointer'implicitMethodParameter msg)
+instance (Classes.Decerialize (Type'anyPointer'implicitMethodParameter)) where
+    type Cerial msg (Type'anyPointer'implicitMethodParameter) = (Capnp.Gen.ById.Xa93fc509624c72d9.Type'anyPointer'implicitMethodParameter msg)
     decerialize raw = (Type'anyPointer'implicitMethodParameter' <$> (Capnp.Gen.ById.Xa93fc509624c72d9.get_Type'anyPointer'implicitMethodParameter'parameterIndex raw))
-instance (Classes.Marshal Type'anyPointer'implicitMethodParameter) where
+instance (Classes.Marshal s (Type'anyPointer'implicitMethodParameter)) where
     marshalInto raw_ value_ = case value_ of
         Type'anyPointer'implicitMethodParameter'{..} ->
             (do
@@ -1179,34 +1181,34 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Brand) where
+instance (Default.Default (Brand)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Brand) where
+instance (Classes.FromStruct Message.ConstMsg (Brand)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Brand) where
-    type Cerial msg Brand = (Capnp.Gen.ById.Xa93fc509624c72d9.Brand msg)
+instance (Classes.Decerialize (Brand)) where
+    type Cerial msg (Brand) = (Capnp.Gen.ById.Xa93fc509624c72d9.Brand msg)
     decerialize raw = (Brand <$> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Brand'scopes raw) >>= Classes.decerialize))
-instance (Classes.Marshal Brand) where
+instance (Classes.Marshal s (Brand)) where
     marshalInto raw_ value_ = case value_ of
         Brand{..} ->
             (do
                 ((Classes.cerialize (Untyped.message raw_) scopes) >>= (Capnp.Gen.ById.Xa93fc509624c72d9.set_Brand'scopes raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Brand)
-instance (Classes.Cerialize (V.Vector Brand)) where
+instance (Classes.Cerialize s (Brand))
+instance (Classes.Cerialize s (V.Vector (Brand))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Brand))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Brand)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Brand)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Brand))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Brand))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Brand)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Brand)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Brand))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Brand))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Brand)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Brand)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Brand))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Brand'Scope 
     = Brand'Scope 
@@ -1215,15 +1217,15 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Brand'Scope) where
+instance (Default.Default (Brand'Scope)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Brand'Scope) where
+instance (Classes.FromStruct Message.ConstMsg (Brand'Scope)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Brand'Scope) where
-    type Cerial msg Brand'Scope = (Capnp.Gen.ById.Xa93fc509624c72d9.Brand'Scope msg)
+instance (Classes.Decerialize (Brand'Scope)) where
+    type Cerial msg (Brand'Scope) = (Capnp.Gen.ById.Xa93fc509624c72d9.Brand'Scope msg)
     decerialize raw = (Brand'Scope <$> (Capnp.Gen.ById.Xa93fc509624c72d9.get_Brand'Scope'scopeId raw)
                                    <*> (Classes.decerialize raw))
-instance (Classes.Marshal Brand'Scope) where
+instance (Classes.Marshal s (Brand'Scope)) where
     marshalInto raw_ value_ = case value_ of
         Brand'Scope{..} ->
             (do
@@ -1233,20 +1235,20 @@
                     )
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Brand'Scope)
-instance (Classes.Cerialize (V.Vector Brand'Scope)) where
+instance (Classes.Cerialize s (Brand'Scope))
+instance (Classes.Cerialize s (V.Vector (Brand'Scope))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Brand'Scope))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Brand'Scope)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Brand'Scope)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Brand'Scope))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Brand'Scope))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Brand'Scope)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Brand'Scope)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Brand'Scope))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Brand'Scope))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Brand'Scope)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Brand'Scope)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Brand'Scope))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Brand'Scope' 
     = Brand'Scope'bind (V.Vector Brand'Binding)
@@ -1255,12 +1257,12 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Brand'Scope') where
+instance (Default.Default (Brand'Scope')) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Brand'Scope') where
+instance (Classes.FromStruct Message.ConstMsg (Brand'Scope')) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Brand'Scope') where
-    type Cerial msg Brand'Scope' = (Capnp.Gen.ById.Xa93fc509624c72d9.Brand'Scope msg)
+instance (Classes.Decerialize (Brand'Scope')) where
+    type Cerial msg (Brand'Scope') = (Capnp.Gen.ById.Xa93fc509624c72d9.Brand'Scope msg)
     decerialize raw = (do
         raw <- (Capnp.Gen.ById.Xa93fc509624c72d9.get_Brand'Scope' raw)
         case raw of
@@ -1271,7 +1273,7 @@
             (Capnp.Gen.ById.Xa93fc509624c72d9.Brand'Scope'unknown' tag) ->
                 (Std_.pure (Brand'Scope'unknown' tag))
         )
-instance (Classes.Marshal Brand'Scope') where
+instance (Classes.Marshal s (Brand'Scope')) where
     marshalInto raw_ value_ = case value_ of
         (Brand'Scope'bind arg_) ->
             ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.Xa93fc509624c72d9.set_Brand'Scope'bind raw_))
@@ -1286,12 +1288,12 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Brand'Binding) where
+instance (Default.Default (Brand'Binding)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Brand'Binding) where
+instance (Classes.FromStruct Message.ConstMsg (Brand'Binding)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Brand'Binding) where
-    type Cerial msg Brand'Binding = (Capnp.Gen.ById.Xa93fc509624c72d9.Brand'Binding msg)
+instance (Classes.Decerialize (Brand'Binding)) where
+    type Cerial msg (Brand'Binding) = (Capnp.Gen.ById.Xa93fc509624c72d9.Brand'Binding msg)
     decerialize raw = (do
         raw <- (Capnp.Gen.ById.Xa93fc509624c72d9.get_Brand'Binding' raw)
         case raw of
@@ -1302,7 +1304,7 @@
             (Capnp.Gen.ById.Xa93fc509624c72d9.Brand'Binding'unknown' tag) ->
                 (Std_.pure (Brand'Binding'unknown' tag))
         )
-instance (Classes.Marshal Brand'Binding) where
+instance (Classes.Marshal s (Brand'Binding)) where
     marshalInto raw_ value_ = case value_ of
         (Brand'Binding'unbound) ->
             (Capnp.Gen.ById.Xa93fc509624c72d9.set_Brand'Binding'unbound raw_)
@@ -1310,20 +1312,20 @@
             ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.Xa93fc509624c72d9.set_Brand'Binding'type_ raw_))
         (Brand'Binding'unknown' tag) ->
             (Capnp.Gen.ById.Xa93fc509624c72d9.set_Brand'Binding'unknown' raw_ tag)
-instance (Classes.Cerialize Brand'Binding)
-instance (Classes.Cerialize (V.Vector Brand'Binding)) where
+instance (Classes.Cerialize s (Brand'Binding))
+instance (Classes.Cerialize s (V.Vector (Brand'Binding))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Brand'Binding))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Brand'Binding)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Brand'Binding)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Brand'Binding))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Brand'Binding))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Brand'Binding)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Brand'Binding)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Brand'Binding))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Brand'Binding))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Brand'Binding)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Brand'Binding)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Brand'Binding))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Value 
     = Value'void 
@@ -1349,12 +1351,12 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Value) where
+instance (Default.Default (Value)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Value) where
+instance (Classes.FromStruct Message.ConstMsg (Value)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Value) where
-    type Cerial msg Value = (Capnp.Gen.ById.Xa93fc509624c72d9.Value msg)
+instance (Classes.Decerialize (Value)) where
+    type Cerial msg (Value) = (Capnp.Gen.ById.Xa93fc509624c72d9.Value msg)
     decerialize raw = (do
         raw <- (Capnp.Gen.ById.Xa93fc509624c72d9.get_Value' raw)
         case raw of
@@ -1399,7 +1401,7 @@
             (Capnp.Gen.ById.Xa93fc509624c72d9.Value'unknown' tag) ->
                 (Std_.pure (Value'unknown' tag))
         )
-instance (Classes.Marshal Value) where
+instance (Classes.Marshal s (Value)) where
     marshalInto raw_ value_ = case value_ of
         (Value'void) ->
             (Capnp.Gen.ById.Xa93fc509624c72d9.set_Value'void raw_)
@@ -1441,20 +1443,20 @@
             ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.Xa93fc509624c72d9.set_Value'anyPointer raw_))
         (Value'unknown' tag) ->
             (Capnp.Gen.ById.Xa93fc509624c72d9.set_Value'unknown' raw_ tag)
-instance (Classes.Cerialize Value)
-instance (Classes.Cerialize (V.Vector Value)) where
+instance (Classes.Cerialize s (Value))
+instance (Classes.Cerialize s (V.Vector (Value))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Value))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Value)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Value)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Value))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Value))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Value)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Value)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Value))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Value))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Value)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Value)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Value))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data Annotation 
     = Annotation 
@@ -1464,16 +1466,16 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default Annotation) where
+instance (Default.Default (Annotation)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Annotation) where
+instance (Classes.FromStruct Message.ConstMsg (Annotation)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Annotation) where
-    type Cerial msg Annotation = (Capnp.Gen.ById.Xa93fc509624c72d9.Annotation msg)
+instance (Classes.Decerialize (Annotation)) where
+    type Cerial msg (Annotation) = (Capnp.Gen.ById.Xa93fc509624c72d9.Annotation msg)
     decerialize raw = (Annotation <$> (Capnp.Gen.ById.Xa93fc509624c72d9.get_Annotation'id raw)
                                   <*> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Annotation'value raw) >>= Classes.decerialize)
                                   <*> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_Annotation'brand raw) >>= Classes.decerialize))
-instance (Classes.Marshal Annotation) where
+instance (Classes.Marshal s (Annotation)) where
     marshalInto raw_ value_ = case value_ of
         Annotation{..} ->
             (do
@@ -1482,20 +1484,20 @@
                 ((Classes.cerialize (Untyped.message raw_) brand) >>= (Capnp.Gen.ById.Xa93fc509624c72d9.set_Annotation'brand raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize Annotation)
-instance (Classes.Cerialize (V.Vector Annotation)) where
+instance (Classes.Cerialize s (Annotation))
+instance (Classes.Cerialize s (V.Vector (Annotation))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Annotation))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (Annotation)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Annotation)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Annotation))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Annotation))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Annotation)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Annotation)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Annotation))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Annotation))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Annotation)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Annotation)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Annotation))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data CapnpVersion 
     = CapnpVersion 
@@ -1505,16 +1507,16 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default CapnpVersion) where
+instance (Default.Default (CapnpVersion)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg CapnpVersion) where
+instance (Classes.FromStruct Message.ConstMsg (CapnpVersion)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize CapnpVersion) where
-    type Cerial msg CapnpVersion = (Capnp.Gen.ById.Xa93fc509624c72d9.CapnpVersion msg)
+instance (Classes.Decerialize (CapnpVersion)) where
+    type Cerial msg (CapnpVersion) = (Capnp.Gen.ById.Xa93fc509624c72d9.CapnpVersion msg)
     decerialize raw = (CapnpVersion <$> (Capnp.Gen.ById.Xa93fc509624c72d9.get_CapnpVersion'major raw)
                                     <*> (Capnp.Gen.ById.Xa93fc509624c72d9.get_CapnpVersion'minor raw)
                                     <*> (Capnp.Gen.ById.Xa93fc509624c72d9.get_CapnpVersion'micro raw))
-instance (Classes.Marshal CapnpVersion) where
+instance (Classes.Marshal s (CapnpVersion)) where
     marshalInto raw_ value_ = case value_ of
         CapnpVersion{..} ->
             (do
@@ -1523,20 +1525,20 @@
                 (Capnp.Gen.ById.Xa93fc509624c72d9.set_CapnpVersion'micro raw_ micro)
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize CapnpVersion)
-instance (Classes.Cerialize (V.Vector CapnpVersion)) where
+instance (Classes.Cerialize s (CapnpVersion))
+instance (Classes.Cerialize s (V.Vector (CapnpVersion))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector CapnpVersion))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (CapnpVersion)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector CapnpVersion)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (CapnpVersion))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector CapnpVersion))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (CapnpVersion)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CapnpVersion)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CapnpVersion))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CapnpVersion))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CapnpVersion)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CapnpVersion)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CapnpVersion))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data CodeGeneratorRequest 
     = CodeGeneratorRequest 
@@ -1547,17 +1549,17 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default CodeGeneratorRequest) where
+instance (Default.Default (CodeGeneratorRequest)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg CodeGeneratorRequest) where
+instance (Classes.FromStruct Message.ConstMsg (CodeGeneratorRequest)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize CodeGeneratorRequest) where
-    type Cerial msg CodeGeneratorRequest = (Capnp.Gen.ById.Xa93fc509624c72d9.CodeGeneratorRequest msg)
+instance (Classes.Decerialize (CodeGeneratorRequest)) where
+    type Cerial msg (CodeGeneratorRequest) = (Capnp.Gen.ById.Xa93fc509624c72d9.CodeGeneratorRequest msg)
     decerialize raw = (CodeGeneratorRequest <$> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_CodeGeneratorRequest'nodes raw) >>= Classes.decerialize)
                                             <*> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_CodeGeneratorRequest'requestedFiles raw) >>= Classes.decerialize)
                                             <*> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_CodeGeneratorRequest'capnpVersion raw) >>= Classes.decerialize)
                                             <*> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_CodeGeneratorRequest'sourceInfo raw) >>= Classes.decerialize))
-instance (Classes.Marshal CodeGeneratorRequest) where
+instance (Classes.Marshal s (CodeGeneratorRequest)) where
     marshalInto raw_ value_ = case value_ of
         CodeGeneratorRequest{..} ->
             (do
@@ -1567,20 +1569,20 @@
                 ((Classes.cerialize (Untyped.message raw_) sourceInfo) >>= (Capnp.Gen.ById.Xa93fc509624c72d9.set_CodeGeneratorRequest'sourceInfo raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize CodeGeneratorRequest)
-instance (Classes.Cerialize (V.Vector CodeGeneratorRequest)) where
+instance (Classes.Cerialize s (CodeGeneratorRequest))
+instance (Classes.Cerialize s (V.Vector (CodeGeneratorRequest))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector CodeGeneratorRequest))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (CodeGeneratorRequest)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector CodeGeneratorRequest)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (CodeGeneratorRequest))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector CodeGeneratorRequest))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (CodeGeneratorRequest)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CodeGeneratorRequest)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CodeGeneratorRequest))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CodeGeneratorRequest))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CodeGeneratorRequest)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CodeGeneratorRequest)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CodeGeneratorRequest))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data CodeGeneratorRequest'RequestedFile 
     = CodeGeneratorRequest'RequestedFile 
@@ -1590,16 +1592,16 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default CodeGeneratorRequest'RequestedFile) where
+instance (Default.Default (CodeGeneratorRequest'RequestedFile)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg CodeGeneratorRequest'RequestedFile) where
+instance (Classes.FromStruct Message.ConstMsg (CodeGeneratorRequest'RequestedFile)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize CodeGeneratorRequest'RequestedFile) where
-    type Cerial msg CodeGeneratorRequest'RequestedFile = (Capnp.Gen.ById.Xa93fc509624c72d9.CodeGeneratorRequest'RequestedFile msg)
+instance (Classes.Decerialize (CodeGeneratorRequest'RequestedFile)) where
+    type Cerial msg (CodeGeneratorRequest'RequestedFile) = (Capnp.Gen.ById.Xa93fc509624c72d9.CodeGeneratorRequest'RequestedFile msg)
     decerialize raw = (CodeGeneratorRequest'RequestedFile <$> (Capnp.Gen.ById.Xa93fc509624c72d9.get_CodeGeneratorRequest'RequestedFile'id raw)
                                                           <*> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_CodeGeneratorRequest'RequestedFile'filename raw) >>= Classes.decerialize)
                                                           <*> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_CodeGeneratorRequest'RequestedFile'imports raw) >>= Classes.decerialize))
-instance (Classes.Marshal CodeGeneratorRequest'RequestedFile) where
+instance (Classes.Marshal s (CodeGeneratorRequest'RequestedFile)) where
     marshalInto raw_ value_ = case value_ of
         CodeGeneratorRequest'RequestedFile{..} ->
             (do
@@ -1608,20 +1610,20 @@
                 ((Classes.cerialize (Untyped.message raw_) imports) >>= (Capnp.Gen.ById.Xa93fc509624c72d9.set_CodeGeneratorRequest'RequestedFile'imports raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize CodeGeneratorRequest'RequestedFile)
-instance (Classes.Cerialize (V.Vector CodeGeneratorRequest'RequestedFile)) where
+instance (Classes.Cerialize s (CodeGeneratorRequest'RequestedFile))
+instance (Classes.Cerialize s (V.Vector (CodeGeneratorRequest'RequestedFile))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector CodeGeneratorRequest'RequestedFile))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (CodeGeneratorRequest'RequestedFile)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector CodeGeneratorRequest'RequestedFile)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (CodeGeneratorRequest'RequestedFile))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector CodeGeneratorRequest'RequestedFile))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (CodeGeneratorRequest'RequestedFile)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CodeGeneratorRequest'RequestedFile)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CodeGeneratorRequest'RequestedFile))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CodeGeneratorRequest'RequestedFile))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CodeGeneratorRequest'RequestedFile)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CodeGeneratorRequest'RequestedFile)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CodeGeneratorRequest'RequestedFile))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 data CodeGeneratorRequest'RequestedFile'Import 
     = CodeGeneratorRequest'RequestedFile'Import 
@@ -1630,15 +1632,15 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default CodeGeneratorRequest'RequestedFile'Import) where
+instance (Default.Default (CodeGeneratorRequest'RequestedFile'Import)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg CodeGeneratorRequest'RequestedFile'Import) where
+instance (Classes.FromStruct Message.ConstMsg (CodeGeneratorRequest'RequestedFile'Import)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize CodeGeneratorRequest'RequestedFile'Import) where
-    type Cerial msg CodeGeneratorRequest'RequestedFile'Import = (Capnp.Gen.ById.Xa93fc509624c72d9.CodeGeneratorRequest'RequestedFile'Import msg)
+instance (Classes.Decerialize (CodeGeneratorRequest'RequestedFile'Import)) where
+    type Cerial msg (CodeGeneratorRequest'RequestedFile'Import) = (Capnp.Gen.ById.Xa93fc509624c72d9.CodeGeneratorRequest'RequestedFile'Import msg)
     decerialize raw = (CodeGeneratorRequest'RequestedFile'Import <$> (Capnp.Gen.ById.Xa93fc509624c72d9.get_CodeGeneratorRequest'RequestedFile'Import'id raw)
                                                                  <*> ((Capnp.Gen.ById.Xa93fc509624c72d9.get_CodeGeneratorRequest'RequestedFile'Import'name raw) >>= Classes.decerialize))
-instance (Classes.Marshal CodeGeneratorRequest'RequestedFile'Import) where
+instance (Classes.Marshal s (CodeGeneratorRequest'RequestedFile'Import)) where
     marshalInto raw_ value_ = case value_ of
         CodeGeneratorRequest'RequestedFile'Import{..} ->
             (do
@@ -1646,35 +1648,35 @@
                 ((Classes.cerialize (Untyped.message raw_) name) >>= (Capnp.Gen.ById.Xa93fc509624c72d9.set_CodeGeneratorRequest'RequestedFile'Import'name raw_))
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize CodeGeneratorRequest'RequestedFile'Import)
-instance (Classes.Cerialize (V.Vector CodeGeneratorRequest'RequestedFile'Import)) where
+instance (Classes.Cerialize s (CodeGeneratorRequest'RequestedFile'Import))
+instance (Classes.Cerialize s (V.Vector (CodeGeneratorRequest'RequestedFile'Import))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector CodeGeneratorRequest'RequestedFile'Import))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (CodeGeneratorRequest'RequestedFile'Import)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector CodeGeneratorRequest'RequestedFile'Import)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (CodeGeneratorRequest'RequestedFile'Import))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector CodeGeneratorRequest'RequestedFile'Import))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (CodeGeneratorRequest'RequestedFile'Import)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CodeGeneratorRequest'RequestedFile'Import)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CodeGeneratorRequest'RequestedFile'Import))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CodeGeneratorRequest'RequestedFile'Import))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CodeGeneratorRequest'RequestedFile'Import)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CodeGeneratorRequest'RequestedFile'Import)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CodeGeneratorRequest'RequestedFile'Import))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
 instance (Classes.Decerialize Capnp.Gen.ById.Xa93fc509624c72d9.ElementSize) where
     type Cerial msg Capnp.Gen.ById.Xa93fc509624c72d9.ElementSize = Capnp.Gen.ById.Xa93fc509624c72d9.ElementSize
     decerialize  = Std_.pure
-instance (Classes.Cerialize Capnp.Gen.ById.Xa93fc509624c72d9.ElementSize) where
+instance (Classes.Cerialize s Capnp.Gen.ById.Xa93fc509624c72d9.ElementSize) where
     cerialize _ = Std_.pure
-instance (Classes.Cerialize (V.Vector Capnp.Gen.ById.Xa93fc509624c72d9.ElementSize)) where
+instance (Classes.Cerialize s (V.Vector Capnp.Gen.ById.Xa93fc509624c72d9.ElementSize)) where
     cerialize  = Classes.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector Capnp.Gen.ById.Xa93fc509624c72d9.ElementSize))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector Capnp.Gen.ById.Xa93fc509624c72d9.ElementSize))) where
     cerialize  = Classes.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.Xa93fc509624c72d9.ElementSize)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.Xa93fc509624c72d9.ElementSize)))) where
     cerialize  = Classes.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.Xa93fc509624c72d9.ElementSize))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.Xa93fc509624c72d9.ElementSize))))) where
     cerialize  = Classes.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.Xa93fc509624c72d9.ElementSize)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.Xa93fc509624c72d9.ElementSize)))))) where
     cerialize  = Classes.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.Xa93fc509624c72d9.ElementSize))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.Xa93fc509624c72d9.ElementSize))))))) where
     cerialize  = Classes.cerializeBasicVec
diff --git a/gen/lib/Capnp/Gen/Capnp/Stream.hs b/gen/lib/Capnp/Gen/Capnp/Stream.hs
--- a/gen/lib/Capnp/Gen/Capnp/Stream.hs
+++ b/gen/lib/Capnp/Gen/Capnp/Stream.hs
@@ -24,8 +24,6 @@
 import Prelude ((<$>), (<*>), (>>=))
 newtype StreamResult msg
     = StreamResult'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg StreamResult) where
-    tMsg f (StreamResult'newtype_ s) = (StreamResult'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (StreamResult msg)) where
     fromStruct struct = (Std_.pure (StreamResult'newtype_ struct))
 instance (Classes.ToStruct msg (StreamResult msg)) where
diff --git a/gen/lib/Capnp/Gen/Capnp/Stream/Pure.hs b/gen/lib/Capnp/Gen/Capnp/Stream/Pure.hs
--- a/gen/lib/Capnp/Gen/Capnp/Stream/Pure.hs
+++ b/gen/lib/Capnp/Gen/Capnp/Stream/Pure.hs
@@ -2,9 +2,11 @@
 {-# LANGUAGE DuplicateRecordFields #-}
 {-# LANGUAGE FlexibleContexts #-}
 {-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE FunctionalDependencies #-}
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE UndecidableInstances #-}
 {-# OPTIONS_GHC -Wno-unused-imports #-}
 {-# OPTIONS_GHC -Wno-dodgy-exports #-}
 {-# OPTIONS_GHC -Wno-unused-matches #-}
@@ -33,31 +35,31 @@
     deriving(Std_.Show
             ,Std_.Eq
             ,Generics.Generic)
-instance (Default.Default StreamResult) where
+instance (Default.Default (StreamResult)) where
     def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg StreamResult) where
+instance (Classes.FromStruct Message.ConstMsg (StreamResult)) where
     fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize StreamResult) where
-    type Cerial msg StreamResult = (Capnp.Gen.ById.X86c366a91393f3f8.StreamResult msg)
+instance (Classes.Decerialize (StreamResult)) where
+    type Cerial msg (StreamResult) = (Capnp.Gen.ById.X86c366a91393f3f8.StreamResult msg)
     decerialize raw = (Std_.pure StreamResult)
-instance (Classes.Marshal StreamResult) where
+instance (Classes.Marshal s (StreamResult)) where
     marshalInto raw_ value_ = case value_ of
         (StreamResult) ->
             (do
                 (Std_.pure ())
                 )
-instance (Classes.Cerialize StreamResult)
-instance (Classes.Cerialize (V.Vector StreamResult)) where
+instance (Classes.Cerialize s (StreamResult))
+instance (Classes.Cerialize s (V.Vector (StreamResult))) where
     cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector StreamResult))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (StreamResult)))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector StreamResult)))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (StreamResult))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector StreamResult))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (StreamResult)))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector StreamResult)))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (StreamResult))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector StreamResult))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (StreamResult)))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector StreamResult)))))))) where
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (StreamResult))))))))) where
     cerialize  = GenHelpersPure.cerializeBasicVec
diff --git a/gen/lib/Internal/Gen/Instances.hs b/gen/lib/Internal/Gen/Instances.hs
--- a/gen/lib/Internal/Gen/Instances.hs
+++ b/gen/lib/Internal/Gen/Instances.hs
@@ -32,19 +32,19 @@
 instance Decerialize Int8 where
     type Cerial msg Int8 = Int8
     decerialize val = pure val
-instance Cerialize Int8 where
+instance Cerialize s Int8 where
     cerialize _ val = pure val
-instance Cerialize (V.Vector Int8) where
+instance Cerialize s (V.Vector Int8) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector Int8)) where
+instance Cerialize s (V.Vector (V.Vector Int8)) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector Int8))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector Int8))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Int8)))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector Int8)))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Int8))))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Int8))))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Int8)))))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Int8)))))) where
     cerialize = cerializeBasicVec
 instance ListElem msg Int16 where
     newtype List msg Int16 = ListInt16 (U.ListOf msg Word16)
@@ -58,19 +58,19 @@
 instance Decerialize Int16 where
     type Cerial msg Int16 = Int16
     decerialize val = pure val
-instance Cerialize Int16 where
+instance Cerialize s Int16 where
     cerialize _ val = pure val
-instance Cerialize (V.Vector Int16) where
+instance Cerialize s (V.Vector Int16) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector Int16)) where
+instance Cerialize s (V.Vector (V.Vector Int16)) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector Int16))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector Int16))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Int16)))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector Int16)))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Int16))))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Int16))))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Int16)))))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Int16)))))) where
     cerialize = cerializeBasicVec
 instance ListElem msg Int32 where
     newtype List msg Int32 = ListInt32 (U.ListOf msg Word32)
@@ -84,19 +84,19 @@
 instance Decerialize Int32 where
     type Cerial msg Int32 = Int32
     decerialize val = pure val
-instance Cerialize Int32 where
+instance Cerialize s Int32 where
     cerialize _ val = pure val
-instance Cerialize (V.Vector Int32) where
+instance Cerialize s (V.Vector Int32) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector Int32)) where
+instance Cerialize s (V.Vector (V.Vector Int32)) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector Int32))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector Int32))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Int32)))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector Int32)))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Int32))))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Int32))))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Int32)))))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Int32)))))) where
     cerialize = cerializeBasicVec
 instance ListElem msg Int64 where
     newtype List msg Int64 = ListInt64 (U.ListOf msg Word64)
@@ -110,19 +110,19 @@
 instance Decerialize Int64 where
     type Cerial msg Int64 = Int64
     decerialize val = pure val
-instance Cerialize Int64 where
+instance Cerialize s Int64 where
     cerialize _ val = pure val
-instance Cerialize (V.Vector Int64) where
+instance Cerialize s (V.Vector Int64) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector Int64)) where
+instance Cerialize s (V.Vector (V.Vector Int64)) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector Int64))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector Int64))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Int64)))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector Int64)))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Int64))))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Int64))))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Int64)))))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Int64)))))) where
     cerialize = cerializeBasicVec
 instance ListElem msg Word8 where
     newtype List msg Word8 = ListWord8 (U.ListOf msg Word8)
@@ -136,19 +136,19 @@
 instance Decerialize Word8 where
     type Cerial msg Word8 = Word8
     decerialize val = pure val
-instance Cerialize Word8 where
+instance Cerialize s Word8 where
     cerialize _ val = pure val
-instance Cerialize (V.Vector Word8) where
+instance Cerialize s (V.Vector Word8) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector Word8)) where
+instance Cerialize s (V.Vector (V.Vector Word8)) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector Word8))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector Word8))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Word8)))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector Word8)))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Word8))))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Word8))))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Word8)))))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Word8)))))) where
     cerialize = cerializeBasicVec
 instance ListElem msg Word16 where
     newtype List msg Word16 = ListWord16 (U.ListOf msg Word16)
@@ -162,19 +162,19 @@
 instance Decerialize Word16 where
     type Cerial msg Word16 = Word16
     decerialize val = pure val
-instance Cerialize Word16 where
+instance Cerialize s Word16 where
     cerialize _ val = pure val
-instance Cerialize (V.Vector Word16) where
+instance Cerialize s (V.Vector Word16) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector Word16)) where
+instance Cerialize s (V.Vector (V.Vector Word16)) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector Word16))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector Word16))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Word16)))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector Word16)))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Word16))))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Word16))))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Word16)))))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Word16)))))) where
     cerialize = cerializeBasicVec
 instance ListElem msg Word32 where
     newtype List msg Word32 = ListWord32 (U.ListOf msg Word32)
@@ -188,19 +188,19 @@
 instance Decerialize Word32 where
     type Cerial msg Word32 = Word32
     decerialize val = pure val
-instance Cerialize Word32 where
+instance Cerialize s Word32 where
     cerialize _ val = pure val
-instance Cerialize (V.Vector Word32) where
+instance Cerialize s (V.Vector Word32) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector Word32)) where
+instance Cerialize s (V.Vector (V.Vector Word32)) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector Word32))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector Word32))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Word32)))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector Word32)))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Word32))))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Word32))))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Word32)))))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Word32)))))) where
     cerialize = cerializeBasicVec
 instance ListElem msg Word64 where
     newtype List msg Word64 = ListWord64 (U.ListOf msg Word64)
@@ -214,19 +214,19 @@
 instance Decerialize Word64 where
     type Cerial msg Word64 = Word64
     decerialize val = pure val
-instance Cerialize Word64 where
+instance Cerialize s Word64 where
     cerialize _ val = pure val
-instance Cerialize (V.Vector Word64) where
+instance Cerialize s (V.Vector Word64) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector Word64)) where
+instance Cerialize s (V.Vector (V.Vector Word64)) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector Word64))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector Word64))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Word64)))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector Word64)))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Word64))))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Word64))))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Word64)))))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Word64)))))) where
     cerialize = cerializeBasicVec
 instance ListElem msg Float where
     newtype List msg Float = ListFloat (U.ListOf msg Word32)
@@ -240,19 +240,19 @@
 instance Decerialize Float where
     type Cerial msg Float = Float
     decerialize val = pure val
-instance Cerialize Float where
+instance Cerialize s Float where
     cerialize _ val = pure val
-instance Cerialize (V.Vector Float) where
+instance Cerialize s (V.Vector Float) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector Float)) where
+instance Cerialize s (V.Vector (V.Vector Float)) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector Float))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector Float))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Float)))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector Float)))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Float))))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Float))))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Float)))))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Float)))))) where
     cerialize = cerializeBasicVec
 instance ListElem msg Double where
     newtype List msg Double = ListDouble (U.ListOf msg Word64)
@@ -266,19 +266,19 @@
 instance Decerialize Double where
     type Cerial msg Double = Double
     decerialize val = pure val
-instance Cerialize Double where
+instance Cerialize s Double where
     cerialize _ val = pure val
-instance Cerialize (V.Vector Double) where
+instance Cerialize s (V.Vector Double) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector Double)) where
+instance Cerialize s (V.Vector (V.Vector Double)) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector Double))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector Double))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Double)))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector Double)))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Double))))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Double))))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Double)))))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Double)))))) where
     cerialize = cerializeBasicVec
 instance ListElem msg Bool where
     newtype List msg Bool = ListBool (U.ListOf msg Bool)
@@ -292,17 +292,17 @@
 instance Decerialize Bool where
     type Cerial msg Bool = Bool
     decerialize val = pure val
-instance Cerialize Bool where
+instance Cerialize s Bool where
     cerialize _ val = pure val
-instance Cerialize (V.Vector Bool) where
+instance Cerialize s (V.Vector Bool) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector Bool)) where
+instance Cerialize s (V.Vector (V.Vector Bool)) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector Bool))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector Bool))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Bool)))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector Bool)))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Bool))))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Bool))))) where
     cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Bool)))))) where
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Bool)))))) where
     cerialize = cerializeBasicVec
diff --git a/gen/tests/Capnp/Gen/Aircraft.hs b/gen/tests/Capnp/Gen/Aircraft.hs
--- a/gen/tests/Capnp/Gen/Aircraft.hs
+++ b/gen/tests/Capnp/Gen/Aircraft.hs
@@ -30,8 +30,6 @@
 constEnum  = (Classes.fromWord 1)
 newtype Zdate msg
     = Zdate'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Zdate) where
-    tMsg f (Zdate'newtype_ s) = (Zdate'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Zdate msg)) where
     fromStruct struct = (Std_.pure (Zdate'newtype_ struct))
 instance (Classes.ToStruct msg (Zdate msg)) where
@@ -74,8 +72,6 @@
 set_Zdate'day (Zdate'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word8) 0 24 0)
 newtype Zdata msg
     = Zdata'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Zdata) where
-    tMsg f (Zdata'newtype_ s) = (Zdata'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Zdata msg)) where
     fromStruct struct = (Std_.pure (Zdata'newtype_ struct))
 instance (Classes.ToStruct msg (Zdata msg)) where
@@ -104,12 +100,14 @@
 instance (Basics.MutListElem s (Zdata (Message.MutMsg s))) where
     setIndex (Zdata'newtype_ elt) i (Zdata'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Zdata'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_Zdata'data_ :: ((Untyped.ReadCtx m msg)) => (Zdata msg) -> (m (Basics.Data msg))
+get_Zdata'data_ :: ((Untyped.ReadCtx m msg)
+                   ,(Classes.FromPtr msg (Basics.Data msg))) => (Zdata msg) -> (m (Basics.Data msg))
 get_Zdata'data_ (Zdata'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Zdata'data_ :: ((Untyped.RWCtx m s)) => (Zdata (Message.MutMsg s)) -> (Basics.Data (Message.MutMsg s)) -> (m ())
+set_Zdata'data_ :: ((Untyped.RWCtx m s)
+                   ,(Classes.ToPtr s (Basics.Data (Message.MutMsg s)))) => (Zdata (Message.MutMsg s)) -> (Basics.Data (Message.MutMsg s)) -> (m ())
 set_Zdata'data_ (Zdata'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -176,8 +174,6 @@
     newList msg size = (Airport'List_ <$> (Untyped.allocList16 msg size))
 newtype PlaneBase msg
     = PlaneBase'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg PlaneBase) where
-    tMsg f (PlaneBase'newtype_ s) = (PlaneBase'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (PlaneBase msg)) where
     fromStruct struct = (Std_.pure (PlaneBase'newtype_ struct))
 instance (Classes.ToStruct msg (PlaneBase msg)) where
@@ -206,12 +202,14 @@
 instance (Basics.MutListElem s (PlaneBase (Message.MutMsg s))) where
     setIndex (PlaneBase'newtype_ elt) i (PlaneBase'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (PlaneBase'List_ <$> (Untyped.allocCompositeList msg 4 2 len))
-get_PlaneBase'name :: ((Untyped.ReadCtx m msg)) => (PlaneBase msg) -> (m (Basics.Text msg))
+get_PlaneBase'name :: ((Untyped.ReadCtx m msg)
+                      ,(Classes.FromPtr msg (Basics.Text msg))) => (PlaneBase msg) -> (m (Basics.Text msg))
 get_PlaneBase'name (PlaneBase'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_PlaneBase'name :: ((Untyped.RWCtx m s)) => (PlaneBase (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
+set_PlaneBase'name :: ((Untyped.RWCtx m s)
+                      ,(Classes.ToPtr s (Basics.Text (Message.MutMsg s)))) => (PlaneBase (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
 set_PlaneBase'name (PlaneBase'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -224,12 +222,14 @@
     (set_PlaneBase'name struct result)
     (Std_.pure result)
     )
-get_PlaneBase'homes :: ((Untyped.ReadCtx m msg)) => (PlaneBase msg) -> (m (Basics.List msg Airport))
+get_PlaneBase'homes :: ((Untyped.ReadCtx m msg)
+                       ,(Classes.FromPtr msg (Basics.List msg Airport))) => (PlaneBase msg) -> (m (Basics.List msg Airport))
 get_PlaneBase'homes (PlaneBase'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 1 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_PlaneBase'homes :: ((Untyped.RWCtx m s)) => (PlaneBase (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) Airport) -> (m ())
+set_PlaneBase'homes :: ((Untyped.RWCtx m s)
+                       ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) Airport))) => (PlaneBase (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) Airport) -> (m ())
 set_PlaneBase'homes (PlaneBase'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 1 struct)
@@ -260,8 +260,6 @@
 set_PlaneBase'maxSpeed (PlaneBase'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word64) 3 0 0)
 newtype B737 msg
     = B737'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg B737) where
-    tMsg f (B737'newtype_ s) = (B737'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (B737 msg)) where
     fromStruct struct = (Std_.pure (B737'newtype_ struct))
 instance (Classes.ToStruct msg (B737 msg)) where
@@ -290,12 +288,14 @@
 instance (Basics.MutListElem s (B737 (Message.MutMsg s))) where
     setIndex (B737'newtype_ elt) i (B737'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (B737'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_B737'base :: ((Untyped.ReadCtx m msg)) => (B737 msg) -> (m (PlaneBase msg))
+get_B737'base :: ((Untyped.ReadCtx m msg)
+                 ,(Classes.FromPtr msg (PlaneBase msg))) => (B737 msg) -> (m (PlaneBase msg))
 get_B737'base (B737'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_B737'base :: ((Untyped.RWCtx m s)) => (B737 (Message.MutMsg s)) -> (PlaneBase (Message.MutMsg s)) -> (m ())
+set_B737'base :: ((Untyped.RWCtx m s)
+                 ,(Classes.ToPtr s (PlaneBase (Message.MutMsg s)))) => (B737 (Message.MutMsg s)) -> (PlaneBase (Message.MutMsg s)) -> (m ())
 set_B737'base (B737'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -310,8 +310,6 @@
     )
 newtype A320 msg
     = A320'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg A320) where
-    tMsg f (A320'newtype_ s) = (A320'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (A320 msg)) where
     fromStruct struct = (Std_.pure (A320'newtype_ struct))
 instance (Classes.ToStruct msg (A320 msg)) where
@@ -340,12 +338,14 @@
 instance (Basics.MutListElem s (A320 (Message.MutMsg s))) where
     setIndex (A320'newtype_ elt) i (A320'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (A320'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_A320'base :: ((Untyped.ReadCtx m msg)) => (A320 msg) -> (m (PlaneBase msg))
+get_A320'base :: ((Untyped.ReadCtx m msg)
+                 ,(Classes.FromPtr msg (PlaneBase msg))) => (A320 msg) -> (m (PlaneBase msg))
 get_A320'base (A320'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_A320'base :: ((Untyped.RWCtx m s)) => (A320 (Message.MutMsg s)) -> (PlaneBase (Message.MutMsg s)) -> (m ())
+set_A320'base :: ((Untyped.RWCtx m s)
+                 ,(Classes.ToPtr s (PlaneBase (Message.MutMsg s)))) => (A320 (Message.MutMsg s)) -> (PlaneBase (Message.MutMsg s)) -> (m ())
 set_A320'base (A320'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -360,8 +360,6 @@
     )
 newtype F16 msg
     = F16'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg F16) where
-    tMsg f (F16'newtype_ s) = (F16'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (F16 msg)) where
     fromStruct struct = (Std_.pure (F16'newtype_ struct))
 instance (Classes.ToStruct msg (F16 msg)) where
@@ -390,12 +388,14 @@
 instance (Basics.MutListElem s (F16 (Message.MutMsg s))) where
     setIndex (F16'newtype_ elt) i (F16'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (F16'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_F16'base :: ((Untyped.ReadCtx m msg)) => (F16 msg) -> (m (PlaneBase msg))
+get_F16'base :: ((Untyped.ReadCtx m msg)
+                ,(Classes.FromPtr msg (PlaneBase msg))) => (F16 msg) -> (m (PlaneBase msg))
 get_F16'base (F16'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_F16'base :: ((Untyped.RWCtx m s)) => (F16 (Message.MutMsg s)) -> (PlaneBase (Message.MutMsg s)) -> (m ())
+set_F16'base :: ((Untyped.RWCtx m s)
+                ,(Classes.ToPtr s (PlaneBase (Message.MutMsg s)))) => (F16 (Message.MutMsg s)) -> (PlaneBase (Message.MutMsg s)) -> (m ())
 set_F16'base (F16'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -410,8 +410,6 @@
     )
 newtype Regression msg
     = Regression'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Regression) where
-    tMsg f (Regression'newtype_ s) = (Regression'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Regression msg)) where
     fromStruct struct = (Std_.pure (Regression'newtype_ struct))
 instance (Classes.ToStruct msg (Regression msg)) where
@@ -440,12 +438,14 @@
 instance (Basics.MutListElem s (Regression (Message.MutMsg s))) where
     setIndex (Regression'newtype_ elt) i (Regression'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Regression'List_ <$> (Untyped.allocCompositeList msg 3 3 len))
-get_Regression'base :: ((Untyped.ReadCtx m msg)) => (Regression msg) -> (m (PlaneBase msg))
+get_Regression'base :: ((Untyped.ReadCtx m msg)
+                       ,(Classes.FromPtr msg (PlaneBase msg))) => (Regression msg) -> (m (PlaneBase msg))
 get_Regression'base (Regression'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Regression'base :: ((Untyped.RWCtx m s)) => (Regression (Message.MutMsg s)) -> (PlaneBase (Message.MutMsg s)) -> (m ())
+set_Regression'base :: ((Untyped.RWCtx m s)
+                       ,(Classes.ToPtr s (PlaneBase (Message.MutMsg s)))) => (Regression (Message.MutMsg s)) -> (PlaneBase (Message.MutMsg s)) -> (m ())
 set_Regression'base (Regression'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -462,12 +462,14 @@
 get_Regression'b0 (Regression'newtype_ struct) = (GenHelpers.getWordField struct 0 0 0)
 set_Regression'b0 :: ((Untyped.RWCtx m s)) => (Regression (Message.MutMsg s)) -> Std_.Double -> (m ())
 set_Regression'b0 (Regression'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word64) 0 0 0)
-get_Regression'beta :: ((Untyped.ReadCtx m msg)) => (Regression msg) -> (m (Basics.List msg Std_.Double))
+get_Regression'beta :: ((Untyped.ReadCtx m msg)
+                       ,(Classes.FromPtr msg (Basics.List msg Std_.Double))) => (Regression msg) -> (m (Basics.List msg Std_.Double))
 get_Regression'beta (Regression'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 1 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Regression'beta :: ((Untyped.RWCtx m s)) => (Regression (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) Std_.Double) -> (m ())
+set_Regression'beta :: ((Untyped.RWCtx m s)
+                       ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) Std_.Double))) => (Regression (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) Std_.Double) -> (m ())
 set_Regression'beta (Regression'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 1 struct)
@@ -480,12 +482,14 @@
     (set_Regression'beta struct result)
     (Std_.pure result)
     )
-get_Regression'planes :: ((Untyped.ReadCtx m msg)) => (Regression msg) -> (m (Basics.List msg (Aircraft msg)))
+get_Regression'planes :: ((Untyped.ReadCtx m msg)
+                         ,(Classes.FromPtr msg (Basics.List msg (Aircraft msg)))) => (Regression msg) -> (m (Basics.List msg (Aircraft msg)))
 get_Regression'planes (Regression'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 2 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Regression'planes :: ((Untyped.RWCtx m s)) => (Regression (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Aircraft (Message.MutMsg s))) -> (m ())
+set_Regression'planes :: ((Untyped.RWCtx m s)
+                         ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Aircraft (Message.MutMsg s))))) => (Regression (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Aircraft (Message.MutMsg s))) -> (m ())
 set_Regression'planes (Regression'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 2 struct)
@@ -508,8 +512,6 @@
 set_Regression'ysd (Regression'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word64) 2 0 0)
 newtype Aircraft msg
     = Aircraft'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Aircraft) where
-    tMsg f (Aircraft'newtype_ s) = (Aircraft'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Aircraft msg)) where
     fromStruct struct = (Std_.pure (Aircraft'newtype_ struct))
 instance (Classes.ToStruct msg (Aircraft msg)) where
@@ -568,14 +570,16 @@
             _ ->
                 (Std_.pure (Aircraft'unknown' (Std_.fromIntegral tag)))
         )
-get_Aircraft' :: ((Untyped.ReadCtx m msg)) => (Aircraft msg) -> (m (Aircraft' msg))
+get_Aircraft' :: ((Untyped.ReadCtx m msg)
+                 ,(Classes.FromStruct msg (Aircraft' msg))) => (Aircraft msg) -> (m (Aircraft' msg))
 get_Aircraft' (Aircraft'newtype_ struct) = (Classes.fromStruct struct)
 set_Aircraft'void :: ((Untyped.RWCtx m s)) => (Aircraft (Message.MutMsg s)) -> (m ())
 set_Aircraft'void (Aircraft'newtype_ struct) = (do
     (GenHelpers.setWordField struct (0 :: Std_.Word16) 0 0 0)
     (Std_.pure ())
     )
-set_Aircraft'b737 :: ((Untyped.RWCtx m s)) => (Aircraft (Message.MutMsg s)) -> (B737 (Message.MutMsg s)) -> (m ())
+set_Aircraft'b737 :: ((Untyped.RWCtx m s)
+                     ,(Classes.ToPtr s (B737 (Message.MutMsg s)))) => (Aircraft (Message.MutMsg s)) -> (B737 (Message.MutMsg s)) -> (m ())
 set_Aircraft'b737 (Aircraft'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (1 :: Std_.Word16) 0 0 0)
     (do
@@ -583,7 +587,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Aircraft'a320 :: ((Untyped.RWCtx m s)) => (Aircraft (Message.MutMsg s)) -> (A320 (Message.MutMsg s)) -> (m ())
+set_Aircraft'a320 :: ((Untyped.RWCtx m s)
+                     ,(Classes.ToPtr s (A320 (Message.MutMsg s)))) => (Aircraft (Message.MutMsg s)) -> (A320 (Message.MutMsg s)) -> (m ())
 set_Aircraft'a320 (Aircraft'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (2 :: Std_.Word16) 0 0 0)
     (do
@@ -591,7 +596,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Aircraft'f16 :: ((Untyped.RWCtx m s)) => (Aircraft (Message.MutMsg s)) -> (F16 (Message.MutMsg s)) -> (m ())
+set_Aircraft'f16 :: ((Untyped.RWCtx m s)
+                    ,(Classes.ToPtr s (F16 (Message.MutMsg s)))) => (Aircraft (Message.MutMsg s)) -> (F16 (Message.MutMsg s)) -> (m ())
 set_Aircraft'f16 (Aircraft'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (3 :: Std_.Word16) 0 0 0)
     (do
@@ -603,8 +609,6 @@
 set_Aircraft'unknown' (Aircraft'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 0 0 0)
 newtype Z msg
     = Z'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Z) where
-    tMsg f (Z'newtype_ s) = (Z'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Z msg)) where
     fromStruct struct = (Std_.pure (Z'newtype_ struct))
 instance (Classes.ToStruct msg (Z msg)) where
@@ -870,14 +874,16 @@
             _ ->
                 (Std_.pure (Z'unknown' (Std_.fromIntegral tag)))
         )
-get_Z' :: ((Untyped.ReadCtx m msg)) => (Z msg) -> (m (Z' msg))
+get_Z' :: ((Untyped.ReadCtx m msg)
+          ,(Classes.FromStruct msg (Z' msg))) => (Z msg) -> (m (Z' msg))
 get_Z' (Z'newtype_ struct) = (Classes.fromStruct struct)
 set_Z'void :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (m ())
 set_Z'void (Z'newtype_ struct) = (do
     (GenHelpers.setWordField struct (0 :: Std_.Word16) 0 0 0)
     (Std_.pure ())
     )
-set_Z'zz :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (Z (Message.MutMsg s)) -> (m ())
+set_Z'zz :: ((Untyped.RWCtx m s)
+            ,(Classes.ToPtr s (Z (Message.MutMsg s)))) => (Z (Message.MutMsg s)) -> (Z (Message.MutMsg s)) -> (m ())
 set_Z'zz (Z'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (1 :: Std_.Word16) 0 0 0)
     (do
@@ -940,7 +946,8 @@
     (GenHelpers.setWordField struct (12 :: Std_.Word16) 0 0 0)
     (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word1) 1 0 0)
     )
-set_Z'text :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
+set_Z'text :: ((Untyped.RWCtx m s)
+              ,(Classes.ToPtr s (Basics.Text (Message.MutMsg s)))) => (Z (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
 set_Z'text (Z'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (13 :: Std_.Word16) 0 0 0)
     (do
@@ -948,7 +955,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Z'blob :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (Basics.Data (Message.MutMsg s)) -> (m ())
+set_Z'blob :: ((Untyped.RWCtx m s)
+              ,(Classes.ToPtr s (Basics.Data (Message.MutMsg s)))) => (Z (Message.MutMsg s)) -> (Basics.Data (Message.MutMsg s)) -> (m ())
 set_Z'blob (Z'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (14 :: Std_.Word16) 0 0 0)
     (do
@@ -956,7 +964,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Z'f64vec :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) Std_.Double) -> (m ())
+set_Z'f64vec :: ((Untyped.RWCtx m s)
+                ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) Std_.Double))) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) Std_.Double) -> (m ())
 set_Z'f64vec (Z'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (15 :: Std_.Word16) 0 0 0)
     (do
@@ -964,7 +973,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Z'f32vec :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) Std_.Float) -> (m ())
+set_Z'f32vec :: ((Untyped.RWCtx m s)
+                ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) Std_.Float))) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) Std_.Float) -> (m ())
 set_Z'f32vec (Z'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (16 :: Std_.Word16) 0 0 0)
     (do
@@ -972,7 +982,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Z'i64vec :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) Std_.Int64) -> (m ())
+set_Z'i64vec :: ((Untyped.RWCtx m s)
+                ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) Std_.Int64))) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) Std_.Int64) -> (m ())
 set_Z'i64vec (Z'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (17 :: Std_.Word16) 0 0 0)
     (do
@@ -980,7 +991,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Z'i32vec :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) Std_.Int32) -> (m ())
+set_Z'i32vec :: ((Untyped.RWCtx m s)
+                ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) Std_.Int32))) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) Std_.Int32) -> (m ())
 set_Z'i32vec (Z'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (18 :: Std_.Word16) 0 0 0)
     (do
@@ -988,7 +1000,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Z'i16vec :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) Std_.Int16) -> (m ())
+set_Z'i16vec :: ((Untyped.RWCtx m s)
+                ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) Std_.Int16))) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) Std_.Int16) -> (m ())
 set_Z'i16vec (Z'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (19 :: Std_.Word16) 0 0 0)
     (do
@@ -996,7 +1009,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Z'i8vec :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) Std_.Int8) -> (m ())
+set_Z'i8vec :: ((Untyped.RWCtx m s)
+               ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) Std_.Int8))) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) Std_.Int8) -> (m ())
 set_Z'i8vec (Z'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (20 :: Std_.Word16) 0 0 0)
     (do
@@ -1004,7 +1018,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Z'u64vec :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) Std_.Word64) -> (m ())
+set_Z'u64vec :: ((Untyped.RWCtx m s)
+                ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) Std_.Word64))) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) Std_.Word64) -> (m ())
 set_Z'u64vec (Z'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (21 :: Std_.Word16) 0 0 0)
     (do
@@ -1012,7 +1027,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Z'u32vec :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) Std_.Word32) -> (m ())
+set_Z'u32vec :: ((Untyped.RWCtx m s)
+                ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) Std_.Word32))) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) Std_.Word32) -> (m ())
 set_Z'u32vec (Z'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (22 :: Std_.Word16) 0 0 0)
     (do
@@ -1020,7 +1036,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Z'u16vec :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) Std_.Word16) -> (m ())
+set_Z'u16vec :: ((Untyped.RWCtx m s)
+                ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) Std_.Word16))) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) Std_.Word16) -> (m ())
 set_Z'u16vec (Z'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (23 :: Std_.Word16) 0 0 0)
     (do
@@ -1028,7 +1045,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Z'u8vec :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) Std_.Word8) -> (m ())
+set_Z'u8vec :: ((Untyped.RWCtx m s)
+               ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) Std_.Word8))) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) Std_.Word8) -> (m ())
 set_Z'u8vec (Z'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (24 :: Std_.Word16) 0 0 0)
     (do
@@ -1036,7 +1054,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Z'zvec :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Z (Message.MutMsg s))) -> (m ())
+set_Z'zvec :: ((Untyped.RWCtx m s)
+              ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Z (Message.MutMsg s))))) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Z (Message.MutMsg s))) -> (m ())
 set_Z'zvec (Z'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (25 :: Std_.Word16) 0 0 0)
     (do
@@ -1044,7 +1063,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Z'zvecvec :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Basics.List (Message.MutMsg s) (Z (Message.MutMsg s)))) -> (m ())
+set_Z'zvecvec :: ((Untyped.RWCtx m s)
+                 ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Basics.List (Message.MutMsg s) (Z (Message.MutMsg s)))))) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Basics.List (Message.MutMsg s) (Z (Message.MutMsg s)))) -> (m ())
 set_Z'zvecvec (Z'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (26 :: Std_.Word16) 0 0 0)
     (do
@@ -1052,7 +1072,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Z'zdate :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (Zdate (Message.MutMsg s)) -> (m ())
+set_Z'zdate :: ((Untyped.RWCtx m s)
+               ,(Classes.ToPtr s (Zdate (Message.MutMsg s)))) => (Z (Message.MutMsg s)) -> (Zdate (Message.MutMsg s)) -> (m ())
 set_Z'zdate (Z'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (27 :: Std_.Word16) 0 0 0)
     (do
@@ -1060,7 +1081,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Z'zdata :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (Zdata (Message.MutMsg s)) -> (m ())
+set_Z'zdata :: ((Untyped.RWCtx m s)
+               ,(Classes.ToPtr s (Zdata (Message.MutMsg s)))) => (Z (Message.MutMsg s)) -> (Zdata (Message.MutMsg s)) -> (m ())
 set_Z'zdata (Z'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (28 :: Std_.Word16) 0 0 0)
     (do
@@ -1068,7 +1090,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Z'aircraftvec :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Aircraft (Message.MutMsg s))) -> (m ())
+set_Z'aircraftvec :: ((Untyped.RWCtx m s)
+                     ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Aircraft (Message.MutMsg s))))) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Aircraft (Message.MutMsg s))) -> (m ())
 set_Z'aircraftvec (Z'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (29 :: Std_.Word16) 0 0 0)
     (do
@@ -1076,7 +1099,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Z'aircraft :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (Aircraft (Message.MutMsg s)) -> (m ())
+set_Z'aircraft :: ((Untyped.RWCtx m s)
+                  ,(Classes.ToPtr s (Aircraft (Message.MutMsg s)))) => (Z (Message.MutMsg s)) -> (Aircraft (Message.MutMsg s)) -> (m ())
 set_Z'aircraft (Z'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (30 :: Std_.Word16) 0 0 0)
     (do
@@ -1084,7 +1108,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Z'regression :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (Regression (Message.MutMsg s)) -> (m ())
+set_Z'regression :: ((Untyped.RWCtx m s)
+                    ,(Classes.ToPtr s (Regression (Message.MutMsg s)))) => (Z (Message.MutMsg s)) -> (Regression (Message.MutMsg s)) -> (m ())
 set_Z'regression (Z'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (31 :: Std_.Word16) 0 0 0)
     (do
@@ -1092,7 +1117,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Z'planebase :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (PlaneBase (Message.MutMsg s)) -> (m ())
+set_Z'planebase :: ((Untyped.RWCtx m s)
+                   ,(Classes.ToPtr s (PlaneBase (Message.MutMsg s)))) => (Z (Message.MutMsg s)) -> (PlaneBase (Message.MutMsg s)) -> (m ())
 set_Z'planebase (Z'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (32 :: Std_.Word16) 0 0 0)
     (do
@@ -1105,7 +1131,8 @@
     (GenHelpers.setWordField struct (33 :: Std_.Word16) 0 0 0)
     (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 1 0 0)
     )
-set_Z'b737 :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (B737 (Message.MutMsg s)) -> (m ())
+set_Z'b737 :: ((Untyped.RWCtx m s)
+              ,(Classes.ToPtr s (B737 (Message.MutMsg s)))) => (Z (Message.MutMsg s)) -> (B737 (Message.MutMsg s)) -> (m ())
 set_Z'b737 (Z'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (34 :: Std_.Word16) 0 0 0)
     (do
@@ -1113,7 +1140,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Z'a320 :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (A320 (Message.MutMsg s)) -> (m ())
+set_Z'a320 :: ((Untyped.RWCtx m s)
+              ,(Classes.ToPtr s (A320 (Message.MutMsg s)))) => (Z (Message.MutMsg s)) -> (A320 (Message.MutMsg s)) -> (m ())
 set_Z'a320 (Z'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (35 :: Std_.Word16) 0 0 0)
     (do
@@ -1121,7 +1149,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Z'f16 :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (F16 (Message.MutMsg s)) -> (m ())
+set_Z'f16 :: ((Untyped.RWCtx m s)
+             ,(Classes.ToPtr s (F16 (Message.MutMsg s)))) => (Z (Message.MutMsg s)) -> (F16 (Message.MutMsg s)) -> (m ())
 set_Z'f16 (Z'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (36 :: Std_.Word16) 0 0 0)
     (do
@@ -1129,7 +1158,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Z'zdatevec :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Zdate (Message.MutMsg s))) -> (m ())
+set_Z'zdatevec :: ((Untyped.RWCtx m s)
+                  ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Zdate (Message.MutMsg s))))) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Zdate (Message.MutMsg s))) -> (m ())
 set_Z'zdatevec (Z'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (37 :: Std_.Word16) 0 0 0)
     (do
@@ -1137,7 +1167,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Z'zdatavec :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Zdata (Message.MutMsg s))) -> (m ())
+set_Z'zdatavec :: ((Untyped.RWCtx m s)
+                  ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Zdata (Message.MutMsg s))))) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Zdata (Message.MutMsg s))) -> (m ())
 set_Z'zdatavec (Z'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (38 :: Std_.Word16) 0 0 0)
     (do
@@ -1145,7 +1176,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Z'boolvec :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) Std_.Bool) -> (m ())
+set_Z'boolvec :: ((Untyped.RWCtx m s)
+                 ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) Std_.Bool))) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) Std_.Bool) -> (m ())
 set_Z'boolvec (Z'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (39 :: Std_.Word16) 0 0 0)
     (do
@@ -1153,7 +1185,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Z'datavec :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Basics.Data (Message.MutMsg s))) -> (m ())
+set_Z'datavec :: ((Untyped.RWCtx m s)
+                 ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Basics.Data (Message.MutMsg s))))) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Basics.Data (Message.MutMsg s))) -> (m ())
 set_Z'datavec (Z'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (40 :: Std_.Word16) 0 0 0)
     (do
@@ -1161,7 +1194,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Z'textvec :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Basics.Text (Message.MutMsg s))) -> (m ())
+set_Z'textvec :: ((Untyped.RWCtx m s)
+                 ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Basics.Text (Message.MutMsg s))))) => (Z (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Basics.Text (Message.MutMsg s))) -> (m ())
 set_Z'textvec (Z'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (41 :: Std_.Word16) 0 0 0)
     (do
@@ -1169,12 +1203,14 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Z'grp :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (m (Z'grp (Message.MutMsg s)))
+set_Z'grp :: ((Untyped.RWCtx m s)
+             ,(Classes.FromStruct (Message.MutMsg s) (Z'grp (Message.MutMsg s)))) => (Z (Message.MutMsg s)) -> (m (Z'grp (Message.MutMsg s)))
 set_Z'grp (Z'newtype_ struct) = (do
     (GenHelpers.setWordField struct (42 :: Std_.Word16) 0 0 0)
     (Classes.fromStruct struct)
     )
-set_Z'echo :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (Echo (Message.MutMsg s)) -> (m ())
+set_Z'echo :: ((Untyped.RWCtx m s)
+              ,(Classes.ToPtr s (Echo (Message.MutMsg s)))) => (Z (Message.MutMsg s)) -> (Echo (Message.MutMsg s)) -> (m ())
 set_Z'echo (Z'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (43 :: Std_.Word16) 0 0 0)
     (do
@@ -1182,7 +1218,8 @@
         (Untyped.setPtr ptr 0 struct)
         )
     )
-set_Z'echoBases :: ((Untyped.RWCtx m s)) => (Z (Message.MutMsg s)) -> (EchoBases (Message.MutMsg s)) -> (m ())
+set_Z'echoBases :: ((Untyped.RWCtx m s)
+                   ,(Classes.ToPtr s (EchoBases (Message.MutMsg s)))) => (Z (Message.MutMsg s)) -> (EchoBases (Message.MutMsg s)) -> (m ())
 set_Z'echoBases (Z'newtype_ struct) value = (do
     (GenHelpers.setWordField struct (44 :: Std_.Word16) 0 0 0)
     (do
@@ -1194,8 +1231,6 @@
 set_Z'unknown' (Z'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 0 0 0)
 newtype Z'grp msg
     = Z'grp'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Z'grp) where
-    tMsg f (Z'grp'newtype_ s) = (Z'grp'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Z'grp msg)) where
     fromStruct struct = (Std_.pure (Z'grp'newtype_ struct))
 instance (Classes.ToStruct msg (Z'grp msg)) where
@@ -1215,8 +1250,6 @@
 set_Z'grp'second (Z'grp'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word64) 2 0 0)
 newtype Counter msg
     = Counter'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Counter) where
-    tMsg f (Counter'newtype_ s) = (Counter'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Counter msg)) where
     fromStruct struct = (Std_.pure (Counter'newtype_ struct))
 instance (Classes.ToStruct msg (Counter msg)) where
@@ -1249,12 +1282,14 @@
 get_Counter'size (Counter'newtype_ struct) = (GenHelpers.getWordField struct 0 0 0)
 set_Counter'size :: ((Untyped.RWCtx m s)) => (Counter (Message.MutMsg s)) -> Std_.Int64 -> (m ())
 set_Counter'size (Counter'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word64) 0 0 0)
-get_Counter'words :: ((Untyped.ReadCtx m msg)) => (Counter msg) -> (m (Basics.Text msg))
+get_Counter'words :: ((Untyped.ReadCtx m msg)
+                     ,(Classes.FromPtr msg (Basics.Text msg))) => (Counter msg) -> (m (Basics.Text msg))
 get_Counter'words (Counter'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Counter'words :: ((Untyped.RWCtx m s)) => (Counter (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
+set_Counter'words :: ((Untyped.RWCtx m s)
+                     ,(Classes.ToPtr s (Basics.Text (Message.MutMsg s)))) => (Counter (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
 set_Counter'words (Counter'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -1267,12 +1302,14 @@
     (set_Counter'words struct result)
     (Std_.pure result)
     )
-get_Counter'wordlist :: ((Untyped.ReadCtx m msg)) => (Counter msg) -> (m (Basics.List msg (Basics.Text msg)))
+get_Counter'wordlist :: ((Untyped.ReadCtx m msg)
+                        ,(Classes.FromPtr msg (Basics.List msg (Basics.Text msg)))) => (Counter msg) -> (m (Basics.List msg (Basics.Text msg)))
 get_Counter'wordlist (Counter'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 1 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Counter'wordlist :: ((Untyped.RWCtx m s)) => (Counter (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Basics.Text (Message.MutMsg s))) -> (m ())
+set_Counter'wordlist :: ((Untyped.RWCtx m s)
+                        ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Basics.Text (Message.MutMsg s))))) => (Counter (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Basics.Text (Message.MutMsg s))) -> (m ())
 set_Counter'wordlist (Counter'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 1 struct)
@@ -1287,8 +1324,6 @@
     )
 newtype Bag msg
     = Bag'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Bag) where
-    tMsg f (Bag'newtype_ s) = (Bag'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Bag msg)) where
     fromStruct struct = (Std_.pure (Bag'newtype_ struct))
 instance (Classes.ToStruct msg (Bag msg)) where
@@ -1317,12 +1352,14 @@
 instance (Basics.MutListElem s (Bag (Message.MutMsg s))) where
     setIndex (Bag'newtype_ elt) i (Bag'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Bag'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_Bag'counter :: ((Untyped.ReadCtx m msg)) => (Bag msg) -> (m (Counter msg))
+get_Bag'counter :: ((Untyped.ReadCtx m msg)
+                   ,(Classes.FromPtr msg (Counter msg))) => (Bag msg) -> (m (Counter msg))
 get_Bag'counter (Bag'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Bag'counter :: ((Untyped.RWCtx m s)) => (Bag (Message.MutMsg s)) -> (Counter (Message.MutMsg s)) -> (m ())
+set_Bag'counter :: ((Untyped.RWCtx m s)
+                   ,(Classes.ToPtr s (Counter (Message.MutMsg s)))) => (Bag (Message.MutMsg s)) -> (Counter (Message.MutMsg s)) -> (m ())
 set_Bag'counter (Bag'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -1337,8 +1374,6 @@
     )
 newtype Zserver msg
     = Zserver'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Zserver) where
-    tMsg f (Zserver'newtype_ s) = (Zserver'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Zserver msg)) where
     fromStruct struct = (Std_.pure (Zserver'newtype_ struct))
 instance (Classes.ToStruct msg (Zserver msg)) where
@@ -1367,12 +1402,14 @@
 instance (Basics.MutListElem s (Zserver (Message.MutMsg s))) where
     setIndex (Zserver'newtype_ elt) i (Zserver'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Zserver'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_Zserver'waitingjobs :: ((Untyped.ReadCtx m msg)) => (Zserver msg) -> (m (Basics.List msg (Zjob msg)))
+get_Zserver'waitingjobs :: ((Untyped.ReadCtx m msg)
+                           ,(Classes.FromPtr msg (Basics.List msg (Zjob msg)))) => (Zserver msg) -> (m (Basics.List msg (Zjob msg)))
 get_Zserver'waitingjobs (Zserver'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Zserver'waitingjobs :: ((Untyped.RWCtx m s)) => (Zserver (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Zjob (Message.MutMsg s))) -> (m ())
+set_Zserver'waitingjobs :: ((Untyped.RWCtx m s)
+                           ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Zjob (Message.MutMsg s))))) => (Zserver (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Zjob (Message.MutMsg s))) -> (m ())
 set_Zserver'waitingjobs (Zserver'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -1387,8 +1424,6 @@
     )
 newtype Zjob msg
     = Zjob'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Zjob) where
-    tMsg f (Zjob'newtype_ s) = (Zjob'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Zjob msg)) where
     fromStruct struct = (Std_.pure (Zjob'newtype_ struct))
 instance (Classes.ToStruct msg (Zjob msg)) where
@@ -1417,12 +1452,14 @@
 instance (Basics.MutListElem s (Zjob (Message.MutMsg s))) where
     setIndex (Zjob'newtype_ elt) i (Zjob'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Zjob'List_ <$> (Untyped.allocCompositeList msg 0 2 len))
-get_Zjob'cmd :: ((Untyped.ReadCtx m msg)) => (Zjob msg) -> (m (Basics.Text msg))
+get_Zjob'cmd :: ((Untyped.ReadCtx m msg)
+                ,(Classes.FromPtr msg (Basics.Text msg))) => (Zjob msg) -> (m (Basics.Text msg))
 get_Zjob'cmd (Zjob'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Zjob'cmd :: ((Untyped.RWCtx m s)) => (Zjob (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
+set_Zjob'cmd :: ((Untyped.RWCtx m s)
+                ,(Classes.ToPtr s (Basics.Text (Message.MutMsg s)))) => (Zjob (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
 set_Zjob'cmd (Zjob'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -1435,12 +1472,14 @@
     (set_Zjob'cmd struct result)
     (Std_.pure result)
     )
-get_Zjob'args :: ((Untyped.ReadCtx m msg)) => (Zjob msg) -> (m (Basics.List msg (Basics.Text msg)))
+get_Zjob'args :: ((Untyped.ReadCtx m msg)
+                 ,(Classes.FromPtr msg (Basics.List msg (Basics.Text msg)))) => (Zjob msg) -> (m (Basics.List msg (Basics.Text msg)))
 get_Zjob'args (Zjob'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 1 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Zjob'args :: ((Untyped.RWCtx m s)) => (Zjob (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Basics.Text (Message.MutMsg s))) -> (m ())
+set_Zjob'args :: ((Untyped.RWCtx m s)
+                 ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Basics.Text (Message.MutMsg s))))) => (Zjob (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Basics.Text (Message.MutMsg s))) -> (m ())
 set_Zjob'args (Zjob'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 1 struct)
@@ -1455,8 +1494,6 @@
     )
 newtype VerEmpty msg
     = VerEmpty'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg VerEmpty) where
-    tMsg f (VerEmpty'newtype_ s) = (VerEmpty'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (VerEmpty msg)) where
     fromStruct struct = (Std_.pure (VerEmpty'newtype_ struct))
 instance (Classes.ToStruct msg (VerEmpty msg)) where
@@ -1487,8 +1524,6 @@
     newList msg len = (VerEmpty'List_ <$> (Untyped.allocCompositeList msg 0 0 len))
 newtype VerOneData msg
     = VerOneData'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg VerOneData) where
-    tMsg f (VerOneData'newtype_ s) = (VerOneData'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (VerOneData msg)) where
     fromStruct struct = (Std_.pure (VerOneData'newtype_ struct))
 instance (Classes.ToStruct msg (VerOneData msg)) where
@@ -1523,8 +1558,6 @@
 set_VerOneData'val (VerOneData'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 0 0 0)
 newtype VerTwoData msg
     = VerTwoData'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg VerTwoData) where
-    tMsg f (VerTwoData'newtype_ s) = (VerTwoData'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (VerTwoData msg)) where
     fromStruct struct = (Std_.pure (VerTwoData'newtype_ struct))
 instance (Classes.ToStruct msg (VerTwoData msg)) where
@@ -1563,8 +1596,6 @@
 set_VerTwoData'duo (VerTwoData'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word64) 1 0 0)
 newtype VerOnePtr msg
     = VerOnePtr'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg VerOnePtr) where
-    tMsg f (VerOnePtr'newtype_ s) = (VerOnePtr'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (VerOnePtr msg)) where
     fromStruct struct = (Std_.pure (VerOnePtr'newtype_ struct))
 instance (Classes.ToStruct msg (VerOnePtr msg)) where
@@ -1593,12 +1624,14 @@
 instance (Basics.MutListElem s (VerOnePtr (Message.MutMsg s))) where
     setIndex (VerOnePtr'newtype_ elt) i (VerOnePtr'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (VerOnePtr'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_VerOnePtr'ptr :: ((Untyped.ReadCtx m msg)) => (VerOnePtr msg) -> (m (VerOneData msg))
+get_VerOnePtr'ptr :: ((Untyped.ReadCtx m msg)
+                     ,(Classes.FromPtr msg (VerOneData msg))) => (VerOnePtr msg) -> (m (VerOneData msg))
 get_VerOnePtr'ptr (VerOnePtr'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_VerOnePtr'ptr :: ((Untyped.RWCtx m s)) => (VerOnePtr (Message.MutMsg s)) -> (VerOneData (Message.MutMsg s)) -> (m ())
+set_VerOnePtr'ptr :: ((Untyped.RWCtx m s)
+                     ,(Classes.ToPtr s (VerOneData (Message.MutMsg s)))) => (VerOnePtr (Message.MutMsg s)) -> (VerOneData (Message.MutMsg s)) -> (m ())
 set_VerOnePtr'ptr (VerOnePtr'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -1613,8 +1646,6 @@
     )
 newtype VerTwoPtr msg
     = VerTwoPtr'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg VerTwoPtr) where
-    tMsg f (VerTwoPtr'newtype_ s) = (VerTwoPtr'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (VerTwoPtr msg)) where
     fromStruct struct = (Std_.pure (VerTwoPtr'newtype_ struct))
 instance (Classes.ToStruct msg (VerTwoPtr msg)) where
@@ -1643,12 +1674,14 @@
 instance (Basics.MutListElem s (VerTwoPtr (Message.MutMsg s))) where
     setIndex (VerTwoPtr'newtype_ elt) i (VerTwoPtr'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (VerTwoPtr'List_ <$> (Untyped.allocCompositeList msg 0 2 len))
-get_VerTwoPtr'ptr1 :: ((Untyped.ReadCtx m msg)) => (VerTwoPtr msg) -> (m (VerOneData msg))
+get_VerTwoPtr'ptr1 :: ((Untyped.ReadCtx m msg)
+                      ,(Classes.FromPtr msg (VerOneData msg))) => (VerTwoPtr msg) -> (m (VerOneData msg))
 get_VerTwoPtr'ptr1 (VerTwoPtr'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_VerTwoPtr'ptr1 :: ((Untyped.RWCtx m s)) => (VerTwoPtr (Message.MutMsg s)) -> (VerOneData (Message.MutMsg s)) -> (m ())
+set_VerTwoPtr'ptr1 :: ((Untyped.RWCtx m s)
+                      ,(Classes.ToPtr s (VerOneData (Message.MutMsg s)))) => (VerTwoPtr (Message.MutMsg s)) -> (VerOneData (Message.MutMsg s)) -> (m ())
 set_VerTwoPtr'ptr1 (VerTwoPtr'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -1661,12 +1694,14 @@
     (set_VerTwoPtr'ptr1 struct result)
     (Std_.pure result)
     )
-get_VerTwoPtr'ptr2 :: ((Untyped.ReadCtx m msg)) => (VerTwoPtr msg) -> (m (VerOneData msg))
+get_VerTwoPtr'ptr2 :: ((Untyped.ReadCtx m msg)
+                      ,(Classes.FromPtr msg (VerOneData msg))) => (VerTwoPtr msg) -> (m (VerOneData msg))
 get_VerTwoPtr'ptr2 (VerTwoPtr'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 1 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_VerTwoPtr'ptr2 :: ((Untyped.RWCtx m s)) => (VerTwoPtr (Message.MutMsg s)) -> (VerOneData (Message.MutMsg s)) -> (m ())
+set_VerTwoPtr'ptr2 :: ((Untyped.RWCtx m s)
+                      ,(Classes.ToPtr s (VerOneData (Message.MutMsg s)))) => (VerTwoPtr (Message.MutMsg s)) -> (VerOneData (Message.MutMsg s)) -> (m ())
 set_VerTwoPtr'ptr2 (VerTwoPtr'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 1 struct)
@@ -1681,8 +1716,6 @@
     )
 newtype VerTwoDataTwoPtr msg
     = VerTwoDataTwoPtr'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg VerTwoDataTwoPtr) where
-    tMsg f (VerTwoDataTwoPtr'newtype_ s) = (VerTwoDataTwoPtr'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (VerTwoDataTwoPtr msg)) where
     fromStruct struct = (Std_.pure (VerTwoDataTwoPtr'newtype_ struct))
 instance (Classes.ToStruct msg (VerTwoDataTwoPtr msg)) where
@@ -1719,12 +1752,14 @@
 get_VerTwoDataTwoPtr'duo (VerTwoDataTwoPtr'newtype_ struct) = (GenHelpers.getWordField struct 1 0 0)
 set_VerTwoDataTwoPtr'duo :: ((Untyped.RWCtx m s)) => (VerTwoDataTwoPtr (Message.MutMsg s)) -> Std_.Int64 -> (m ())
 set_VerTwoDataTwoPtr'duo (VerTwoDataTwoPtr'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word64) 1 0 0)
-get_VerTwoDataTwoPtr'ptr1 :: ((Untyped.ReadCtx m msg)) => (VerTwoDataTwoPtr msg) -> (m (VerOneData msg))
+get_VerTwoDataTwoPtr'ptr1 :: ((Untyped.ReadCtx m msg)
+                             ,(Classes.FromPtr msg (VerOneData msg))) => (VerTwoDataTwoPtr msg) -> (m (VerOneData msg))
 get_VerTwoDataTwoPtr'ptr1 (VerTwoDataTwoPtr'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_VerTwoDataTwoPtr'ptr1 :: ((Untyped.RWCtx m s)) => (VerTwoDataTwoPtr (Message.MutMsg s)) -> (VerOneData (Message.MutMsg s)) -> (m ())
+set_VerTwoDataTwoPtr'ptr1 :: ((Untyped.RWCtx m s)
+                             ,(Classes.ToPtr s (VerOneData (Message.MutMsg s)))) => (VerTwoDataTwoPtr (Message.MutMsg s)) -> (VerOneData (Message.MutMsg s)) -> (m ())
 set_VerTwoDataTwoPtr'ptr1 (VerTwoDataTwoPtr'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -1737,12 +1772,14 @@
     (set_VerTwoDataTwoPtr'ptr1 struct result)
     (Std_.pure result)
     )
-get_VerTwoDataTwoPtr'ptr2 :: ((Untyped.ReadCtx m msg)) => (VerTwoDataTwoPtr msg) -> (m (VerOneData msg))
+get_VerTwoDataTwoPtr'ptr2 :: ((Untyped.ReadCtx m msg)
+                             ,(Classes.FromPtr msg (VerOneData msg))) => (VerTwoDataTwoPtr msg) -> (m (VerOneData msg))
 get_VerTwoDataTwoPtr'ptr2 (VerTwoDataTwoPtr'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 1 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_VerTwoDataTwoPtr'ptr2 :: ((Untyped.RWCtx m s)) => (VerTwoDataTwoPtr (Message.MutMsg s)) -> (VerOneData (Message.MutMsg s)) -> (m ())
+set_VerTwoDataTwoPtr'ptr2 :: ((Untyped.RWCtx m s)
+                             ,(Classes.ToPtr s (VerOneData (Message.MutMsg s)))) => (VerTwoDataTwoPtr (Message.MutMsg s)) -> (VerOneData (Message.MutMsg s)) -> (m ())
 set_VerTwoDataTwoPtr'ptr2 (VerTwoDataTwoPtr'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 1 struct)
@@ -1757,8 +1794,6 @@
     )
 newtype HoldsVerEmptyList msg
     = HoldsVerEmptyList'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg HoldsVerEmptyList) where
-    tMsg f (HoldsVerEmptyList'newtype_ s) = (HoldsVerEmptyList'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (HoldsVerEmptyList msg)) where
     fromStruct struct = (Std_.pure (HoldsVerEmptyList'newtype_ struct))
 instance (Classes.ToStruct msg (HoldsVerEmptyList msg)) where
@@ -1787,12 +1822,14 @@
 instance (Basics.MutListElem s (HoldsVerEmptyList (Message.MutMsg s))) where
     setIndex (HoldsVerEmptyList'newtype_ elt) i (HoldsVerEmptyList'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (HoldsVerEmptyList'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_HoldsVerEmptyList'mylist :: ((Untyped.ReadCtx m msg)) => (HoldsVerEmptyList msg) -> (m (Basics.List msg (VerEmpty msg)))
+get_HoldsVerEmptyList'mylist :: ((Untyped.ReadCtx m msg)
+                                ,(Classes.FromPtr msg (Basics.List msg (VerEmpty msg)))) => (HoldsVerEmptyList msg) -> (m (Basics.List msg (VerEmpty msg)))
 get_HoldsVerEmptyList'mylist (HoldsVerEmptyList'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_HoldsVerEmptyList'mylist :: ((Untyped.RWCtx m s)) => (HoldsVerEmptyList (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (VerEmpty (Message.MutMsg s))) -> (m ())
+set_HoldsVerEmptyList'mylist :: ((Untyped.RWCtx m s)
+                                ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (VerEmpty (Message.MutMsg s))))) => (HoldsVerEmptyList (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (VerEmpty (Message.MutMsg s))) -> (m ())
 set_HoldsVerEmptyList'mylist (HoldsVerEmptyList'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -1807,8 +1844,6 @@
     )
 newtype HoldsVerOneDataList msg
     = HoldsVerOneDataList'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg HoldsVerOneDataList) where
-    tMsg f (HoldsVerOneDataList'newtype_ s) = (HoldsVerOneDataList'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (HoldsVerOneDataList msg)) where
     fromStruct struct = (Std_.pure (HoldsVerOneDataList'newtype_ struct))
 instance (Classes.ToStruct msg (HoldsVerOneDataList msg)) where
@@ -1837,12 +1872,14 @@
 instance (Basics.MutListElem s (HoldsVerOneDataList (Message.MutMsg s))) where
     setIndex (HoldsVerOneDataList'newtype_ elt) i (HoldsVerOneDataList'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (HoldsVerOneDataList'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_HoldsVerOneDataList'mylist :: ((Untyped.ReadCtx m msg)) => (HoldsVerOneDataList msg) -> (m (Basics.List msg (VerOneData msg)))
+get_HoldsVerOneDataList'mylist :: ((Untyped.ReadCtx m msg)
+                                  ,(Classes.FromPtr msg (Basics.List msg (VerOneData msg)))) => (HoldsVerOneDataList msg) -> (m (Basics.List msg (VerOneData msg)))
 get_HoldsVerOneDataList'mylist (HoldsVerOneDataList'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_HoldsVerOneDataList'mylist :: ((Untyped.RWCtx m s)) => (HoldsVerOneDataList (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (VerOneData (Message.MutMsg s))) -> (m ())
+set_HoldsVerOneDataList'mylist :: ((Untyped.RWCtx m s)
+                                  ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (VerOneData (Message.MutMsg s))))) => (HoldsVerOneDataList (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (VerOneData (Message.MutMsg s))) -> (m ())
 set_HoldsVerOneDataList'mylist (HoldsVerOneDataList'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -1857,8 +1894,6 @@
     )
 newtype HoldsVerTwoDataList msg
     = HoldsVerTwoDataList'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg HoldsVerTwoDataList) where
-    tMsg f (HoldsVerTwoDataList'newtype_ s) = (HoldsVerTwoDataList'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (HoldsVerTwoDataList msg)) where
     fromStruct struct = (Std_.pure (HoldsVerTwoDataList'newtype_ struct))
 instance (Classes.ToStruct msg (HoldsVerTwoDataList msg)) where
@@ -1887,12 +1922,14 @@
 instance (Basics.MutListElem s (HoldsVerTwoDataList (Message.MutMsg s))) where
     setIndex (HoldsVerTwoDataList'newtype_ elt) i (HoldsVerTwoDataList'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (HoldsVerTwoDataList'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_HoldsVerTwoDataList'mylist :: ((Untyped.ReadCtx m msg)) => (HoldsVerTwoDataList msg) -> (m (Basics.List msg (VerTwoData msg)))
+get_HoldsVerTwoDataList'mylist :: ((Untyped.ReadCtx m msg)
+                                  ,(Classes.FromPtr msg (Basics.List msg (VerTwoData msg)))) => (HoldsVerTwoDataList msg) -> (m (Basics.List msg (VerTwoData msg)))
 get_HoldsVerTwoDataList'mylist (HoldsVerTwoDataList'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_HoldsVerTwoDataList'mylist :: ((Untyped.RWCtx m s)) => (HoldsVerTwoDataList (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (VerTwoData (Message.MutMsg s))) -> (m ())
+set_HoldsVerTwoDataList'mylist :: ((Untyped.RWCtx m s)
+                                  ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (VerTwoData (Message.MutMsg s))))) => (HoldsVerTwoDataList (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (VerTwoData (Message.MutMsg s))) -> (m ())
 set_HoldsVerTwoDataList'mylist (HoldsVerTwoDataList'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -1907,8 +1944,6 @@
     )
 newtype HoldsVerOnePtrList msg
     = HoldsVerOnePtrList'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg HoldsVerOnePtrList) where
-    tMsg f (HoldsVerOnePtrList'newtype_ s) = (HoldsVerOnePtrList'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (HoldsVerOnePtrList msg)) where
     fromStruct struct = (Std_.pure (HoldsVerOnePtrList'newtype_ struct))
 instance (Classes.ToStruct msg (HoldsVerOnePtrList msg)) where
@@ -1937,12 +1972,14 @@
 instance (Basics.MutListElem s (HoldsVerOnePtrList (Message.MutMsg s))) where
     setIndex (HoldsVerOnePtrList'newtype_ elt) i (HoldsVerOnePtrList'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (HoldsVerOnePtrList'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_HoldsVerOnePtrList'mylist :: ((Untyped.ReadCtx m msg)) => (HoldsVerOnePtrList msg) -> (m (Basics.List msg (VerOnePtr msg)))
+get_HoldsVerOnePtrList'mylist :: ((Untyped.ReadCtx m msg)
+                                 ,(Classes.FromPtr msg (Basics.List msg (VerOnePtr msg)))) => (HoldsVerOnePtrList msg) -> (m (Basics.List msg (VerOnePtr msg)))
 get_HoldsVerOnePtrList'mylist (HoldsVerOnePtrList'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_HoldsVerOnePtrList'mylist :: ((Untyped.RWCtx m s)) => (HoldsVerOnePtrList (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (VerOnePtr (Message.MutMsg s))) -> (m ())
+set_HoldsVerOnePtrList'mylist :: ((Untyped.RWCtx m s)
+                                 ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (VerOnePtr (Message.MutMsg s))))) => (HoldsVerOnePtrList (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (VerOnePtr (Message.MutMsg s))) -> (m ())
 set_HoldsVerOnePtrList'mylist (HoldsVerOnePtrList'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -1957,8 +1994,6 @@
     )
 newtype HoldsVerTwoPtrList msg
     = HoldsVerTwoPtrList'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg HoldsVerTwoPtrList) where
-    tMsg f (HoldsVerTwoPtrList'newtype_ s) = (HoldsVerTwoPtrList'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (HoldsVerTwoPtrList msg)) where
     fromStruct struct = (Std_.pure (HoldsVerTwoPtrList'newtype_ struct))
 instance (Classes.ToStruct msg (HoldsVerTwoPtrList msg)) where
@@ -1987,12 +2022,14 @@
 instance (Basics.MutListElem s (HoldsVerTwoPtrList (Message.MutMsg s))) where
     setIndex (HoldsVerTwoPtrList'newtype_ elt) i (HoldsVerTwoPtrList'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (HoldsVerTwoPtrList'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_HoldsVerTwoPtrList'mylist :: ((Untyped.ReadCtx m msg)) => (HoldsVerTwoPtrList msg) -> (m (Basics.List msg (VerTwoPtr msg)))
+get_HoldsVerTwoPtrList'mylist :: ((Untyped.ReadCtx m msg)
+                                 ,(Classes.FromPtr msg (Basics.List msg (VerTwoPtr msg)))) => (HoldsVerTwoPtrList msg) -> (m (Basics.List msg (VerTwoPtr msg)))
 get_HoldsVerTwoPtrList'mylist (HoldsVerTwoPtrList'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_HoldsVerTwoPtrList'mylist :: ((Untyped.RWCtx m s)) => (HoldsVerTwoPtrList (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (VerTwoPtr (Message.MutMsg s))) -> (m ())
+set_HoldsVerTwoPtrList'mylist :: ((Untyped.RWCtx m s)
+                                 ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (VerTwoPtr (Message.MutMsg s))))) => (HoldsVerTwoPtrList (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (VerTwoPtr (Message.MutMsg s))) -> (m ())
 set_HoldsVerTwoPtrList'mylist (HoldsVerTwoPtrList'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -2007,8 +2044,6 @@
     )
 newtype HoldsVerTwoTwoList msg
     = HoldsVerTwoTwoList'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg HoldsVerTwoTwoList) where
-    tMsg f (HoldsVerTwoTwoList'newtype_ s) = (HoldsVerTwoTwoList'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (HoldsVerTwoTwoList msg)) where
     fromStruct struct = (Std_.pure (HoldsVerTwoTwoList'newtype_ struct))
 instance (Classes.ToStruct msg (HoldsVerTwoTwoList msg)) where
@@ -2037,12 +2072,14 @@
 instance (Basics.MutListElem s (HoldsVerTwoTwoList (Message.MutMsg s))) where
     setIndex (HoldsVerTwoTwoList'newtype_ elt) i (HoldsVerTwoTwoList'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (HoldsVerTwoTwoList'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_HoldsVerTwoTwoList'mylist :: ((Untyped.ReadCtx m msg)) => (HoldsVerTwoTwoList msg) -> (m (Basics.List msg (VerTwoDataTwoPtr msg)))
+get_HoldsVerTwoTwoList'mylist :: ((Untyped.ReadCtx m msg)
+                                 ,(Classes.FromPtr msg (Basics.List msg (VerTwoDataTwoPtr msg)))) => (HoldsVerTwoTwoList msg) -> (m (Basics.List msg (VerTwoDataTwoPtr msg)))
 get_HoldsVerTwoTwoList'mylist (HoldsVerTwoTwoList'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_HoldsVerTwoTwoList'mylist :: ((Untyped.RWCtx m s)) => (HoldsVerTwoTwoList (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (VerTwoDataTwoPtr (Message.MutMsg s))) -> (m ())
+set_HoldsVerTwoTwoList'mylist :: ((Untyped.RWCtx m s)
+                                 ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (VerTwoDataTwoPtr (Message.MutMsg s))))) => (HoldsVerTwoTwoList (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (VerTwoDataTwoPtr (Message.MutMsg s))) -> (m ())
 set_HoldsVerTwoTwoList'mylist (HoldsVerTwoTwoList'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -2057,8 +2094,6 @@
     )
 newtype HoldsVerTwoTwoPlus msg
     = HoldsVerTwoTwoPlus'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg HoldsVerTwoTwoPlus) where
-    tMsg f (HoldsVerTwoTwoPlus'newtype_ s) = (HoldsVerTwoTwoPlus'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (HoldsVerTwoTwoPlus msg)) where
     fromStruct struct = (Std_.pure (HoldsVerTwoTwoPlus'newtype_ struct))
 instance (Classes.ToStruct msg (HoldsVerTwoTwoPlus msg)) where
@@ -2087,12 +2122,14 @@
 instance (Basics.MutListElem s (HoldsVerTwoTwoPlus (Message.MutMsg s))) where
     setIndex (HoldsVerTwoTwoPlus'newtype_ elt) i (HoldsVerTwoTwoPlus'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (HoldsVerTwoTwoPlus'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_HoldsVerTwoTwoPlus'mylist :: ((Untyped.ReadCtx m msg)) => (HoldsVerTwoTwoPlus msg) -> (m (Basics.List msg (VerTwoTwoPlus msg)))
+get_HoldsVerTwoTwoPlus'mylist :: ((Untyped.ReadCtx m msg)
+                                 ,(Classes.FromPtr msg (Basics.List msg (VerTwoTwoPlus msg)))) => (HoldsVerTwoTwoPlus msg) -> (m (Basics.List msg (VerTwoTwoPlus msg)))
 get_HoldsVerTwoTwoPlus'mylist (HoldsVerTwoTwoPlus'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_HoldsVerTwoTwoPlus'mylist :: ((Untyped.RWCtx m s)) => (HoldsVerTwoTwoPlus (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (VerTwoTwoPlus (Message.MutMsg s))) -> (m ())
+set_HoldsVerTwoTwoPlus'mylist :: ((Untyped.RWCtx m s)
+                                 ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (VerTwoTwoPlus (Message.MutMsg s))))) => (HoldsVerTwoTwoPlus (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (VerTwoTwoPlus (Message.MutMsg s))) -> (m ())
 set_HoldsVerTwoTwoPlus'mylist (HoldsVerTwoTwoPlus'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -2107,8 +2144,6 @@
     )
 newtype VerTwoTwoPlus msg
     = VerTwoTwoPlus'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg VerTwoTwoPlus) where
-    tMsg f (VerTwoTwoPlus'newtype_ s) = (VerTwoTwoPlus'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (VerTwoTwoPlus msg)) where
     fromStruct struct = (Std_.pure (VerTwoTwoPlus'newtype_ struct))
 instance (Classes.ToStruct msg (VerTwoTwoPlus msg)) where
@@ -2145,12 +2180,14 @@
 get_VerTwoTwoPlus'duo (VerTwoTwoPlus'newtype_ struct) = (GenHelpers.getWordField struct 1 0 0)
 set_VerTwoTwoPlus'duo :: ((Untyped.RWCtx m s)) => (VerTwoTwoPlus (Message.MutMsg s)) -> Std_.Int64 -> (m ())
 set_VerTwoTwoPlus'duo (VerTwoTwoPlus'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word64) 1 0 0)
-get_VerTwoTwoPlus'ptr1 :: ((Untyped.ReadCtx m msg)) => (VerTwoTwoPlus msg) -> (m (VerTwoDataTwoPtr msg))
+get_VerTwoTwoPlus'ptr1 :: ((Untyped.ReadCtx m msg)
+                          ,(Classes.FromPtr msg (VerTwoDataTwoPtr msg))) => (VerTwoTwoPlus msg) -> (m (VerTwoDataTwoPtr msg))
 get_VerTwoTwoPlus'ptr1 (VerTwoTwoPlus'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_VerTwoTwoPlus'ptr1 :: ((Untyped.RWCtx m s)) => (VerTwoTwoPlus (Message.MutMsg s)) -> (VerTwoDataTwoPtr (Message.MutMsg s)) -> (m ())
+set_VerTwoTwoPlus'ptr1 :: ((Untyped.RWCtx m s)
+                          ,(Classes.ToPtr s (VerTwoDataTwoPtr (Message.MutMsg s)))) => (VerTwoTwoPlus (Message.MutMsg s)) -> (VerTwoDataTwoPtr (Message.MutMsg s)) -> (m ())
 set_VerTwoTwoPlus'ptr1 (VerTwoTwoPlus'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -2163,12 +2200,14 @@
     (set_VerTwoTwoPlus'ptr1 struct result)
     (Std_.pure result)
     )
-get_VerTwoTwoPlus'ptr2 :: ((Untyped.ReadCtx m msg)) => (VerTwoTwoPlus msg) -> (m (VerTwoDataTwoPtr msg))
+get_VerTwoTwoPlus'ptr2 :: ((Untyped.ReadCtx m msg)
+                          ,(Classes.FromPtr msg (VerTwoDataTwoPtr msg))) => (VerTwoTwoPlus msg) -> (m (VerTwoDataTwoPtr msg))
 get_VerTwoTwoPlus'ptr2 (VerTwoTwoPlus'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 1 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_VerTwoTwoPlus'ptr2 :: ((Untyped.RWCtx m s)) => (VerTwoTwoPlus (Message.MutMsg s)) -> (VerTwoDataTwoPtr (Message.MutMsg s)) -> (m ())
+set_VerTwoTwoPlus'ptr2 :: ((Untyped.RWCtx m s)
+                          ,(Classes.ToPtr s (VerTwoDataTwoPtr (Message.MutMsg s)))) => (VerTwoTwoPlus (Message.MutMsg s)) -> (VerTwoDataTwoPtr (Message.MutMsg s)) -> (m ())
 set_VerTwoTwoPlus'ptr2 (VerTwoTwoPlus'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 1 struct)
@@ -2185,12 +2224,14 @@
 get_VerTwoTwoPlus'tre (VerTwoTwoPlus'newtype_ struct) = (GenHelpers.getWordField struct 2 0 0)
 set_VerTwoTwoPlus'tre :: ((Untyped.RWCtx m s)) => (VerTwoTwoPlus (Message.MutMsg s)) -> Std_.Int64 -> (m ())
 set_VerTwoTwoPlus'tre (VerTwoTwoPlus'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word64) 2 0 0)
-get_VerTwoTwoPlus'lst3 :: ((Untyped.ReadCtx m msg)) => (VerTwoTwoPlus msg) -> (m (Basics.List msg Std_.Int64))
+get_VerTwoTwoPlus'lst3 :: ((Untyped.ReadCtx m msg)
+                          ,(Classes.FromPtr msg (Basics.List msg Std_.Int64))) => (VerTwoTwoPlus msg) -> (m (Basics.List msg Std_.Int64))
 get_VerTwoTwoPlus'lst3 (VerTwoTwoPlus'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 2 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_VerTwoTwoPlus'lst3 :: ((Untyped.RWCtx m s)) => (VerTwoTwoPlus (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) Std_.Int64) -> (m ())
+set_VerTwoTwoPlus'lst3 :: ((Untyped.RWCtx m s)
+                          ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) Std_.Int64))) => (VerTwoTwoPlus (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) Std_.Int64) -> (m ())
 set_VerTwoTwoPlus'lst3 (VerTwoTwoPlus'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 2 struct)
@@ -2205,8 +2246,6 @@
     )
 newtype HoldsText msg
     = HoldsText'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg HoldsText) where
-    tMsg f (HoldsText'newtype_ s) = (HoldsText'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (HoldsText msg)) where
     fromStruct struct = (Std_.pure (HoldsText'newtype_ struct))
 instance (Classes.ToStruct msg (HoldsText msg)) where
@@ -2235,12 +2274,14 @@
 instance (Basics.MutListElem s (HoldsText (Message.MutMsg s))) where
     setIndex (HoldsText'newtype_ elt) i (HoldsText'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (HoldsText'List_ <$> (Untyped.allocCompositeList msg 0 3 len))
-get_HoldsText'txt :: ((Untyped.ReadCtx m msg)) => (HoldsText msg) -> (m (Basics.Text msg))
+get_HoldsText'txt :: ((Untyped.ReadCtx m msg)
+                     ,(Classes.FromPtr msg (Basics.Text msg))) => (HoldsText msg) -> (m (Basics.Text msg))
 get_HoldsText'txt (HoldsText'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_HoldsText'txt :: ((Untyped.RWCtx m s)) => (HoldsText (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
+set_HoldsText'txt :: ((Untyped.RWCtx m s)
+                     ,(Classes.ToPtr s (Basics.Text (Message.MutMsg s)))) => (HoldsText (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
 set_HoldsText'txt (HoldsText'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -2253,12 +2294,14 @@
     (set_HoldsText'txt struct result)
     (Std_.pure result)
     )
-get_HoldsText'lst :: ((Untyped.ReadCtx m msg)) => (HoldsText msg) -> (m (Basics.List msg (Basics.Text msg)))
+get_HoldsText'lst :: ((Untyped.ReadCtx m msg)
+                     ,(Classes.FromPtr msg (Basics.List msg (Basics.Text msg)))) => (HoldsText msg) -> (m (Basics.List msg (Basics.Text msg)))
 get_HoldsText'lst (HoldsText'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 1 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_HoldsText'lst :: ((Untyped.RWCtx m s)) => (HoldsText (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Basics.Text (Message.MutMsg s))) -> (m ())
+set_HoldsText'lst :: ((Untyped.RWCtx m s)
+                     ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Basics.Text (Message.MutMsg s))))) => (HoldsText (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Basics.Text (Message.MutMsg s))) -> (m ())
 set_HoldsText'lst (HoldsText'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 1 struct)
@@ -2271,12 +2314,14 @@
     (set_HoldsText'lst struct result)
     (Std_.pure result)
     )
-get_HoldsText'lstlst :: ((Untyped.ReadCtx m msg)) => (HoldsText msg) -> (m (Basics.List msg (Basics.List msg (Basics.Text msg))))
+get_HoldsText'lstlst :: ((Untyped.ReadCtx m msg)
+                        ,(Classes.FromPtr msg (Basics.List msg (Basics.List msg (Basics.Text msg))))) => (HoldsText msg) -> (m (Basics.List msg (Basics.List msg (Basics.Text msg))))
 get_HoldsText'lstlst (HoldsText'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 2 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_HoldsText'lstlst :: ((Untyped.RWCtx m s)) => (HoldsText (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Basics.List (Message.MutMsg s) (Basics.Text (Message.MutMsg s)))) -> (m ())
+set_HoldsText'lstlst :: ((Untyped.RWCtx m s)
+                        ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Basics.List (Message.MutMsg s) (Basics.Text (Message.MutMsg s)))))) => (HoldsText (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Basics.List (Message.MutMsg s) (Basics.Text (Message.MutMsg s)))) -> (m ())
 set_HoldsText'lstlst (HoldsText'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 2 struct)
@@ -2291,8 +2336,6 @@
     )
 newtype WrapEmpty msg
     = WrapEmpty'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg WrapEmpty) where
-    tMsg f (WrapEmpty'newtype_ s) = (WrapEmpty'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (WrapEmpty msg)) where
     fromStruct struct = (Std_.pure (WrapEmpty'newtype_ struct))
 instance (Classes.ToStruct msg (WrapEmpty msg)) where
@@ -2321,12 +2364,14 @@
 instance (Basics.MutListElem s (WrapEmpty (Message.MutMsg s))) where
     setIndex (WrapEmpty'newtype_ elt) i (WrapEmpty'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (WrapEmpty'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_WrapEmpty'mightNotBeReallyEmpty :: ((Untyped.ReadCtx m msg)) => (WrapEmpty msg) -> (m (VerEmpty msg))
+get_WrapEmpty'mightNotBeReallyEmpty :: ((Untyped.ReadCtx m msg)
+                                       ,(Classes.FromPtr msg (VerEmpty msg))) => (WrapEmpty msg) -> (m (VerEmpty msg))
 get_WrapEmpty'mightNotBeReallyEmpty (WrapEmpty'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_WrapEmpty'mightNotBeReallyEmpty :: ((Untyped.RWCtx m s)) => (WrapEmpty (Message.MutMsg s)) -> (VerEmpty (Message.MutMsg s)) -> (m ())
+set_WrapEmpty'mightNotBeReallyEmpty :: ((Untyped.RWCtx m s)
+                                       ,(Classes.ToPtr s (VerEmpty (Message.MutMsg s)))) => (WrapEmpty (Message.MutMsg s)) -> (VerEmpty (Message.MutMsg s)) -> (m ())
 set_WrapEmpty'mightNotBeReallyEmpty (WrapEmpty'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -2341,8 +2386,6 @@
     )
 newtype Wrap2x2 msg
     = Wrap2x2'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Wrap2x2) where
-    tMsg f (Wrap2x2'newtype_ s) = (Wrap2x2'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Wrap2x2 msg)) where
     fromStruct struct = (Std_.pure (Wrap2x2'newtype_ struct))
 instance (Classes.ToStruct msg (Wrap2x2 msg)) where
@@ -2371,12 +2414,14 @@
 instance (Basics.MutListElem s (Wrap2x2 (Message.MutMsg s))) where
     setIndex (Wrap2x2'newtype_ elt) i (Wrap2x2'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Wrap2x2'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_Wrap2x2'mightNotBeReallyEmpty :: ((Untyped.ReadCtx m msg)) => (Wrap2x2 msg) -> (m (VerTwoDataTwoPtr msg))
+get_Wrap2x2'mightNotBeReallyEmpty :: ((Untyped.ReadCtx m msg)
+                                     ,(Classes.FromPtr msg (VerTwoDataTwoPtr msg))) => (Wrap2x2 msg) -> (m (VerTwoDataTwoPtr msg))
 get_Wrap2x2'mightNotBeReallyEmpty (Wrap2x2'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Wrap2x2'mightNotBeReallyEmpty :: ((Untyped.RWCtx m s)) => (Wrap2x2 (Message.MutMsg s)) -> (VerTwoDataTwoPtr (Message.MutMsg s)) -> (m ())
+set_Wrap2x2'mightNotBeReallyEmpty :: ((Untyped.RWCtx m s)
+                                     ,(Classes.ToPtr s (VerTwoDataTwoPtr (Message.MutMsg s)))) => (Wrap2x2 (Message.MutMsg s)) -> (VerTwoDataTwoPtr (Message.MutMsg s)) -> (m ())
 set_Wrap2x2'mightNotBeReallyEmpty (Wrap2x2'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -2391,8 +2436,6 @@
     )
 newtype Wrap2x2plus msg
     = Wrap2x2plus'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Wrap2x2plus) where
-    tMsg f (Wrap2x2plus'newtype_ s) = (Wrap2x2plus'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Wrap2x2plus msg)) where
     fromStruct struct = (Std_.pure (Wrap2x2plus'newtype_ struct))
 instance (Classes.ToStruct msg (Wrap2x2plus msg)) where
@@ -2421,12 +2464,14 @@
 instance (Basics.MutListElem s (Wrap2x2plus (Message.MutMsg s))) where
     setIndex (Wrap2x2plus'newtype_ elt) i (Wrap2x2plus'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Wrap2x2plus'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_Wrap2x2plus'mightNotBeReallyEmpty :: ((Untyped.ReadCtx m msg)) => (Wrap2x2plus msg) -> (m (VerTwoTwoPlus msg))
+get_Wrap2x2plus'mightNotBeReallyEmpty :: ((Untyped.ReadCtx m msg)
+                                         ,(Classes.FromPtr msg (VerTwoTwoPlus msg))) => (Wrap2x2plus msg) -> (m (VerTwoTwoPlus msg))
 get_Wrap2x2plus'mightNotBeReallyEmpty (Wrap2x2plus'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Wrap2x2plus'mightNotBeReallyEmpty :: ((Untyped.RWCtx m s)) => (Wrap2x2plus (Message.MutMsg s)) -> (VerTwoTwoPlus (Message.MutMsg s)) -> (m ())
+set_Wrap2x2plus'mightNotBeReallyEmpty :: ((Untyped.RWCtx m s)
+                                         ,(Classes.ToPtr s (VerTwoTwoPlus (Message.MutMsg s)))) => (Wrap2x2plus (Message.MutMsg s)) -> (VerTwoTwoPlus (Message.MutMsg s)) -> (m ())
 set_Wrap2x2plus'mightNotBeReallyEmpty (Wrap2x2plus'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -2441,8 +2486,6 @@
     )
 newtype VoidUnion msg
     = VoidUnion'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg VoidUnion) where
-    tMsg f (VoidUnion'newtype_ s) = (VoidUnion'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (VoidUnion msg)) where
     fromStruct struct = (Std_.pure (VoidUnion'newtype_ struct))
 instance (Classes.ToStruct msg (VoidUnion msg)) where
@@ -2486,7 +2529,8 @@
             _ ->
                 (Std_.pure (VoidUnion'unknown' (Std_.fromIntegral tag)))
         )
-get_VoidUnion' :: ((Untyped.ReadCtx m msg)) => (VoidUnion msg) -> (m (VoidUnion' msg))
+get_VoidUnion' :: ((Untyped.ReadCtx m msg)
+                  ,(Classes.FromStruct msg (VoidUnion' msg))) => (VoidUnion msg) -> (m (VoidUnion' msg))
 get_VoidUnion' (VoidUnion'newtype_ struct) = (Classes.fromStruct struct)
 set_VoidUnion'a :: ((Untyped.RWCtx m s)) => (VoidUnion (Message.MutMsg s)) -> (m ())
 set_VoidUnion'a (VoidUnion'newtype_ struct) = (do
@@ -2502,8 +2546,6 @@
 set_VoidUnion'unknown' (VoidUnion'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 0 0 0)
 newtype Nester1Capn msg
     = Nester1Capn'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Nester1Capn) where
-    tMsg f (Nester1Capn'newtype_ s) = (Nester1Capn'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Nester1Capn msg)) where
     fromStruct struct = (Std_.pure (Nester1Capn'newtype_ struct))
 instance (Classes.ToStruct msg (Nester1Capn msg)) where
@@ -2532,12 +2574,14 @@
 instance (Basics.MutListElem s (Nester1Capn (Message.MutMsg s))) where
     setIndex (Nester1Capn'newtype_ elt) i (Nester1Capn'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Nester1Capn'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_Nester1Capn'strs :: ((Untyped.ReadCtx m msg)) => (Nester1Capn msg) -> (m (Basics.List msg (Basics.Text msg)))
+get_Nester1Capn'strs :: ((Untyped.ReadCtx m msg)
+                        ,(Classes.FromPtr msg (Basics.List msg (Basics.Text msg)))) => (Nester1Capn msg) -> (m (Basics.List msg (Basics.Text msg)))
 get_Nester1Capn'strs (Nester1Capn'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Nester1Capn'strs :: ((Untyped.RWCtx m s)) => (Nester1Capn (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Basics.Text (Message.MutMsg s))) -> (m ())
+set_Nester1Capn'strs :: ((Untyped.RWCtx m s)
+                        ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Basics.Text (Message.MutMsg s))))) => (Nester1Capn (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Basics.Text (Message.MutMsg s))) -> (m ())
 set_Nester1Capn'strs (Nester1Capn'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -2552,8 +2596,6 @@
     )
 newtype RWTestCapn msg
     = RWTestCapn'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg RWTestCapn) where
-    tMsg f (RWTestCapn'newtype_ s) = (RWTestCapn'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (RWTestCapn msg)) where
     fromStruct struct = (Std_.pure (RWTestCapn'newtype_ struct))
 instance (Classes.ToStruct msg (RWTestCapn msg)) where
@@ -2582,12 +2624,14 @@
 instance (Basics.MutListElem s (RWTestCapn (Message.MutMsg s))) where
     setIndex (RWTestCapn'newtype_ elt) i (RWTestCapn'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (RWTestCapn'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_RWTestCapn'nestMatrix :: ((Untyped.ReadCtx m msg)) => (RWTestCapn msg) -> (m (Basics.List msg (Basics.List msg (Nester1Capn msg))))
+get_RWTestCapn'nestMatrix :: ((Untyped.ReadCtx m msg)
+                             ,(Classes.FromPtr msg (Basics.List msg (Basics.List msg (Nester1Capn msg))))) => (RWTestCapn msg) -> (m (Basics.List msg (Basics.List msg (Nester1Capn msg))))
 get_RWTestCapn'nestMatrix (RWTestCapn'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_RWTestCapn'nestMatrix :: ((Untyped.RWCtx m s)) => (RWTestCapn (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Basics.List (Message.MutMsg s) (Nester1Capn (Message.MutMsg s)))) -> (m ())
+set_RWTestCapn'nestMatrix :: ((Untyped.RWCtx m s)
+                             ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Basics.List (Message.MutMsg s) (Nester1Capn (Message.MutMsg s)))))) => (RWTestCapn (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Basics.List (Message.MutMsg s) (Nester1Capn (Message.MutMsg s)))) -> (m ())
 set_RWTestCapn'nestMatrix (RWTestCapn'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -2602,8 +2646,6 @@
     )
 newtype ListStructCapn msg
     = ListStructCapn'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg ListStructCapn) where
-    tMsg f (ListStructCapn'newtype_ s) = (ListStructCapn'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (ListStructCapn msg)) where
     fromStruct struct = (Std_.pure (ListStructCapn'newtype_ struct))
 instance (Classes.ToStruct msg (ListStructCapn msg)) where
@@ -2632,12 +2674,14 @@
 instance (Basics.MutListElem s (ListStructCapn (Message.MutMsg s))) where
     setIndex (ListStructCapn'newtype_ elt) i (ListStructCapn'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (ListStructCapn'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_ListStructCapn'vec :: ((Untyped.ReadCtx m msg)) => (ListStructCapn msg) -> (m (Basics.List msg (Nester1Capn msg)))
+get_ListStructCapn'vec :: ((Untyped.ReadCtx m msg)
+                          ,(Classes.FromPtr msg (Basics.List msg (Nester1Capn msg)))) => (ListStructCapn msg) -> (m (Basics.List msg (Nester1Capn msg)))
 get_ListStructCapn'vec (ListStructCapn'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_ListStructCapn'vec :: ((Untyped.RWCtx m s)) => (ListStructCapn (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Nester1Capn (Message.MutMsg s))) -> (m ())
+set_ListStructCapn'vec :: ((Untyped.RWCtx m s)
+                          ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (Nester1Capn (Message.MutMsg s))))) => (ListStructCapn (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (Nester1Capn (Message.MutMsg s))) -> (m ())
 set_ListStructCapn'vec (ListStructCapn'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -2659,8 +2703,6 @@
     toPtr msg (Echo'newtype_ (Std_.Just cap)) = (Std_.pure (Std_.Just (Untyped.PtrCap cap)))
 newtype Echo'echo'params msg
     = Echo'echo'params'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Echo'echo'params) where
-    tMsg f (Echo'echo'params'newtype_ s) = (Echo'echo'params'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Echo'echo'params msg)) where
     fromStruct struct = (Std_.pure (Echo'echo'params'newtype_ struct))
 instance (Classes.ToStruct msg (Echo'echo'params msg)) where
@@ -2689,12 +2731,14 @@
 instance (Basics.MutListElem s (Echo'echo'params (Message.MutMsg s))) where
     setIndex (Echo'echo'params'newtype_ elt) i (Echo'echo'params'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Echo'echo'params'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_Echo'echo'params'in_ :: ((Untyped.ReadCtx m msg)) => (Echo'echo'params msg) -> (m (Basics.Text msg))
+get_Echo'echo'params'in_ :: ((Untyped.ReadCtx m msg)
+                            ,(Classes.FromPtr msg (Basics.Text msg))) => (Echo'echo'params msg) -> (m (Basics.Text msg))
 get_Echo'echo'params'in_ (Echo'echo'params'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Echo'echo'params'in_ :: ((Untyped.RWCtx m s)) => (Echo'echo'params (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
+set_Echo'echo'params'in_ :: ((Untyped.RWCtx m s)
+                            ,(Classes.ToPtr s (Basics.Text (Message.MutMsg s)))) => (Echo'echo'params (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
 set_Echo'echo'params'in_ (Echo'echo'params'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -2709,8 +2753,6 @@
     )
 newtype Echo'echo'results msg
     = Echo'echo'results'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Echo'echo'results) where
-    tMsg f (Echo'echo'results'newtype_ s) = (Echo'echo'results'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Echo'echo'results msg)) where
     fromStruct struct = (Std_.pure (Echo'echo'results'newtype_ struct))
 instance (Classes.ToStruct msg (Echo'echo'results msg)) where
@@ -2739,12 +2781,14 @@
 instance (Basics.MutListElem s (Echo'echo'results (Message.MutMsg s))) where
     setIndex (Echo'echo'results'newtype_ elt) i (Echo'echo'results'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Echo'echo'results'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_Echo'echo'results'out :: ((Untyped.ReadCtx m msg)) => (Echo'echo'results msg) -> (m (Basics.Text msg))
+get_Echo'echo'results'out :: ((Untyped.ReadCtx m msg)
+                             ,(Classes.FromPtr msg (Basics.Text msg))) => (Echo'echo'results msg) -> (m (Basics.Text msg))
 get_Echo'echo'results'out (Echo'echo'results'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Echo'echo'results'out :: ((Untyped.RWCtx m s)) => (Echo'echo'results (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
+set_Echo'echo'results'out :: ((Untyped.RWCtx m s)
+                             ,(Classes.ToPtr s (Basics.Text (Message.MutMsg s)))) => (Echo'echo'results (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
 set_Echo'echo'results'out (Echo'echo'results'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -2759,8 +2803,6 @@
     )
 newtype Hoth msg
     = Hoth'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Hoth) where
-    tMsg f (Hoth'newtype_ s) = (Hoth'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Hoth msg)) where
     fromStruct struct = (Std_.pure (Hoth'newtype_ struct))
 instance (Classes.ToStruct msg (Hoth msg)) where
@@ -2789,12 +2831,14 @@
 instance (Basics.MutListElem s (Hoth (Message.MutMsg s))) where
     setIndex (Hoth'newtype_ elt) i (Hoth'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Hoth'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_Hoth'base :: ((Untyped.ReadCtx m msg)) => (Hoth msg) -> (m (EchoBase msg))
+get_Hoth'base :: ((Untyped.ReadCtx m msg)
+                 ,(Classes.FromPtr msg (EchoBase msg))) => (Hoth msg) -> (m (EchoBase msg))
 get_Hoth'base (Hoth'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Hoth'base :: ((Untyped.RWCtx m s)) => (Hoth (Message.MutMsg s)) -> (EchoBase (Message.MutMsg s)) -> (m ())
+set_Hoth'base :: ((Untyped.RWCtx m s)
+                 ,(Classes.ToPtr s (EchoBase (Message.MutMsg s)))) => (Hoth (Message.MutMsg s)) -> (EchoBase (Message.MutMsg s)) -> (m ())
 set_Hoth'base (Hoth'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -2809,8 +2853,6 @@
     )
 newtype EchoBase msg
     = EchoBase'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg EchoBase) where
-    tMsg f (EchoBase'newtype_ s) = (EchoBase'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (EchoBase msg)) where
     fromStruct struct = (Std_.pure (EchoBase'newtype_ struct))
 instance (Classes.ToStruct msg (EchoBase msg)) where
@@ -2839,12 +2881,14 @@
 instance (Basics.MutListElem s (EchoBase (Message.MutMsg s))) where
     setIndex (EchoBase'newtype_ elt) i (EchoBase'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (EchoBase'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_EchoBase'echo :: ((Untyped.ReadCtx m msg)) => (EchoBase msg) -> (m (Echo msg))
+get_EchoBase'echo :: ((Untyped.ReadCtx m msg)
+                     ,(Classes.FromPtr msg (Echo msg))) => (EchoBase msg) -> (m (Echo msg))
 get_EchoBase'echo (EchoBase'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_EchoBase'echo :: ((Untyped.RWCtx m s)) => (EchoBase (Message.MutMsg s)) -> (Echo (Message.MutMsg s)) -> (m ())
+set_EchoBase'echo :: ((Untyped.RWCtx m s)
+                     ,(Classes.ToPtr s (Echo (Message.MutMsg s)))) => (EchoBase (Message.MutMsg s)) -> (Echo (Message.MutMsg s)) -> (m ())
 set_EchoBase'echo (EchoBase'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -2853,8 +2897,6 @@
 has_EchoBase'echo (EchoBase'newtype_ struct) = (Std_.isJust <$> (Untyped.getPtr 0 struct))
 newtype EchoBases msg
     = EchoBases'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg EchoBases) where
-    tMsg f (EchoBases'newtype_ s) = (EchoBases'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (EchoBases msg)) where
     fromStruct struct = (Std_.pure (EchoBases'newtype_ struct))
 instance (Classes.ToStruct msg (EchoBases msg)) where
@@ -2883,12 +2925,14 @@
 instance (Basics.MutListElem s (EchoBases (Message.MutMsg s))) where
     setIndex (EchoBases'newtype_ elt) i (EchoBases'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (EchoBases'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_EchoBases'bases :: ((Untyped.ReadCtx m msg)) => (EchoBases msg) -> (m (Basics.List msg (EchoBase msg)))
+get_EchoBases'bases :: ((Untyped.ReadCtx m msg)
+                       ,(Classes.FromPtr msg (Basics.List msg (EchoBase msg)))) => (EchoBases msg) -> (m (Basics.List msg (EchoBase msg)))
 get_EchoBases'bases (EchoBases'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_EchoBases'bases :: ((Untyped.RWCtx m s)) => (EchoBases (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (EchoBase (Message.MutMsg s))) -> (m ())
+set_EchoBases'bases :: ((Untyped.RWCtx m s)
+                       ,(Classes.ToPtr s (Basics.List (Message.MutMsg s) (EchoBase (Message.MutMsg s))))) => (EchoBases (Message.MutMsg s)) -> (Basics.List (Message.MutMsg s) (EchoBase (Message.MutMsg s))) -> (m ())
 set_EchoBases'bases (EchoBases'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -2903,8 +2947,6 @@
     )
 newtype StackingRoot msg
     = StackingRoot'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg StackingRoot) where
-    tMsg f (StackingRoot'newtype_ s) = (StackingRoot'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (StackingRoot msg)) where
     fromStruct struct = (Std_.pure (StackingRoot'newtype_ struct))
 instance (Classes.ToStruct msg (StackingRoot msg)) where
@@ -2933,12 +2975,14 @@
 instance (Basics.MutListElem s (StackingRoot (Message.MutMsg s))) where
     setIndex (StackingRoot'newtype_ elt) i (StackingRoot'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (StackingRoot'List_ <$> (Untyped.allocCompositeList msg 0 2 len))
-get_StackingRoot'aWithDefault :: ((Untyped.ReadCtx m msg)) => (StackingRoot msg) -> (m (StackingA msg))
+get_StackingRoot'aWithDefault :: ((Untyped.ReadCtx m msg)
+                                 ,(Classes.FromPtr msg (StackingA msg))) => (StackingRoot msg) -> (m (StackingA msg))
 get_StackingRoot'aWithDefault (StackingRoot'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_StackingRoot'aWithDefault :: ((Untyped.RWCtx m s)) => (StackingRoot (Message.MutMsg s)) -> (StackingA (Message.MutMsg s)) -> (m ())
+set_StackingRoot'aWithDefault :: ((Untyped.RWCtx m s)
+                                 ,(Classes.ToPtr s (StackingA (Message.MutMsg s)))) => (StackingRoot (Message.MutMsg s)) -> (StackingA (Message.MutMsg s)) -> (m ())
 set_StackingRoot'aWithDefault (StackingRoot'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -2951,12 +2995,14 @@
     (set_StackingRoot'aWithDefault struct result)
     (Std_.pure result)
     )
-get_StackingRoot'a :: ((Untyped.ReadCtx m msg)) => (StackingRoot msg) -> (m (StackingA msg))
+get_StackingRoot'a :: ((Untyped.ReadCtx m msg)
+                      ,(Classes.FromPtr msg (StackingA msg))) => (StackingRoot msg) -> (m (StackingA msg))
 get_StackingRoot'a (StackingRoot'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 1 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_StackingRoot'a :: ((Untyped.RWCtx m s)) => (StackingRoot (Message.MutMsg s)) -> (StackingA (Message.MutMsg s)) -> (m ())
+set_StackingRoot'a :: ((Untyped.RWCtx m s)
+                      ,(Classes.ToPtr s (StackingA (Message.MutMsg s)))) => (StackingRoot (Message.MutMsg s)) -> (StackingA (Message.MutMsg s)) -> (m ())
 set_StackingRoot'a (StackingRoot'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 1 struct)
@@ -2971,8 +3017,6 @@
     )
 newtype StackingA msg
     = StackingA'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg StackingA) where
-    tMsg f (StackingA'newtype_ s) = (StackingA'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (StackingA msg)) where
     fromStruct struct = (Std_.pure (StackingA'newtype_ struct))
 instance (Classes.ToStruct msg (StackingA msg)) where
@@ -3005,12 +3049,14 @@
 get_StackingA'num (StackingA'newtype_ struct) = (GenHelpers.getWordField struct 0 0 0)
 set_StackingA'num :: ((Untyped.RWCtx m s)) => (StackingA (Message.MutMsg s)) -> Std_.Int32 -> (m ())
 set_StackingA'num (StackingA'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word32) 0 0 0)
-get_StackingA'b :: ((Untyped.ReadCtx m msg)) => (StackingA msg) -> (m (StackingB msg))
+get_StackingA'b :: ((Untyped.ReadCtx m msg)
+                   ,(Classes.FromPtr msg (StackingB msg))) => (StackingA msg) -> (m (StackingB msg))
 get_StackingA'b (StackingA'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_StackingA'b :: ((Untyped.RWCtx m s)) => (StackingA (Message.MutMsg s)) -> (StackingB (Message.MutMsg s)) -> (m ())
+set_StackingA'b :: ((Untyped.RWCtx m s)
+                   ,(Classes.ToPtr s (StackingB (Message.MutMsg s)))) => (StackingA (Message.MutMsg s)) -> (StackingB (Message.MutMsg s)) -> (m ())
 set_StackingA'b (StackingA'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -3025,8 +3071,6 @@
     )
 newtype StackingB msg
     = StackingB'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg StackingB) where
-    tMsg f (StackingB'newtype_ s) = (StackingB'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (StackingB msg)) where
     fromStruct struct = (Std_.pure (StackingB'newtype_ struct))
 instance (Classes.ToStruct msg (StackingB msg)) where
@@ -3068,8 +3112,6 @@
     toPtr msg (CallSequence'newtype_ (Std_.Just cap)) = (Std_.pure (Std_.Just (Untyped.PtrCap cap)))
 newtype CallSequence'getNumber'params msg
     = CallSequence'getNumber'params'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg CallSequence'getNumber'params) where
-    tMsg f (CallSequence'getNumber'params'newtype_ s) = (CallSequence'getNumber'params'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (CallSequence'getNumber'params msg)) where
     fromStruct struct = (Std_.pure (CallSequence'getNumber'params'newtype_ struct))
 instance (Classes.ToStruct msg (CallSequence'getNumber'params msg)) where
@@ -3100,8 +3142,6 @@
     newList msg len = (CallSequence'getNumber'params'List_ <$> (Untyped.allocCompositeList msg 0 0 len))
 newtype CallSequence'getNumber'results msg
     = CallSequence'getNumber'results'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg CallSequence'getNumber'results) where
-    tMsg f (CallSequence'getNumber'results'newtype_ s) = (CallSequence'getNumber'results'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (CallSequence'getNumber'results msg)) where
     fromStruct struct = (Std_.pure (CallSequence'getNumber'results'newtype_ struct))
 instance (Classes.ToStruct msg (CallSequence'getNumber'results msg)) where
@@ -3143,8 +3183,6 @@
     toPtr msg (CounterFactory'newtype_ (Std_.Just cap)) = (Std_.pure (Std_.Just (Untyped.PtrCap cap)))
 newtype CounterFactory'newCounter'params msg
     = CounterFactory'newCounter'params'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg CounterFactory'newCounter'params) where
-    tMsg f (CounterFactory'newCounter'params'newtype_ s) = (CounterFactory'newCounter'params'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (CounterFactory'newCounter'params msg)) where
     fromStruct struct = (Std_.pure (CounterFactory'newCounter'params'newtype_ struct))
 instance (Classes.ToStruct msg (CounterFactory'newCounter'params msg)) where
@@ -3179,8 +3217,6 @@
 set_CounterFactory'newCounter'params'start (CounterFactory'newCounter'params'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word32) 0 0 0)
 newtype CounterFactory'newCounter'results msg
     = CounterFactory'newCounter'results'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg CounterFactory'newCounter'results) where
-    tMsg f (CounterFactory'newCounter'results'newtype_ s) = (CounterFactory'newCounter'results'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (CounterFactory'newCounter'results msg)) where
     fromStruct struct = (Std_.pure (CounterFactory'newCounter'results'newtype_ struct))
 instance (Classes.ToStruct msg (CounterFactory'newCounter'results msg)) where
@@ -3209,12 +3245,14 @@
 instance (Basics.MutListElem s (CounterFactory'newCounter'results (Message.MutMsg s))) where
     setIndex (CounterFactory'newCounter'results'newtype_ elt) i (CounterFactory'newCounter'results'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (CounterFactory'newCounter'results'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_CounterFactory'newCounter'results'counter :: ((Untyped.ReadCtx m msg)) => (CounterFactory'newCounter'results msg) -> (m (CallSequence msg))
+get_CounterFactory'newCounter'results'counter :: ((Untyped.ReadCtx m msg)
+                                                 ,(Classes.FromPtr msg (CallSequence msg))) => (CounterFactory'newCounter'results msg) -> (m (CallSequence msg))
 get_CounterFactory'newCounter'results'counter (CounterFactory'newCounter'results'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_CounterFactory'newCounter'results'counter :: ((Untyped.RWCtx m s)) => (CounterFactory'newCounter'results (Message.MutMsg s)) -> (CallSequence (Message.MutMsg s)) -> (m ())
+set_CounterFactory'newCounter'results'counter :: ((Untyped.RWCtx m s)
+                                                 ,(Classes.ToPtr s (CallSequence (Message.MutMsg s)))) => (CounterFactory'newCounter'results (Message.MutMsg s)) -> (CallSequence (Message.MutMsg s)) -> (m ())
 set_CounterFactory'newCounter'results'counter (CounterFactory'newCounter'results'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -3230,8 +3268,6 @@
     toPtr msg (CounterAcceptor'newtype_ (Std_.Just cap)) = (Std_.pure (Std_.Just (Untyped.PtrCap cap)))
 newtype CounterAcceptor'accept'params msg
     = CounterAcceptor'accept'params'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg CounterAcceptor'accept'params) where
-    tMsg f (CounterAcceptor'accept'params'newtype_ s) = (CounterAcceptor'accept'params'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (CounterAcceptor'accept'params msg)) where
     fromStruct struct = (Std_.pure (CounterAcceptor'accept'params'newtype_ struct))
 instance (Classes.ToStruct msg (CounterAcceptor'accept'params msg)) where
@@ -3260,12 +3296,14 @@
 instance (Basics.MutListElem s (CounterAcceptor'accept'params (Message.MutMsg s))) where
     setIndex (CounterAcceptor'accept'params'newtype_ elt) i (CounterAcceptor'accept'params'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (CounterAcceptor'accept'params'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
-get_CounterAcceptor'accept'params'counter :: ((Untyped.ReadCtx m msg)) => (CounterAcceptor'accept'params msg) -> (m (CallSequence msg))
+get_CounterAcceptor'accept'params'counter :: ((Untyped.ReadCtx m msg)
+                                             ,(Classes.FromPtr msg (CallSequence msg))) => (CounterAcceptor'accept'params msg) -> (m (CallSequence msg))
 get_CounterAcceptor'accept'params'counter (CounterAcceptor'accept'params'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_CounterAcceptor'accept'params'counter :: ((Untyped.RWCtx m s)) => (CounterAcceptor'accept'params (Message.MutMsg s)) -> (CallSequence (Message.MutMsg s)) -> (m ())
+set_CounterAcceptor'accept'params'counter :: ((Untyped.RWCtx m s)
+                                             ,(Classes.ToPtr s (CallSequence (Message.MutMsg s)))) => (CounterAcceptor'accept'params (Message.MutMsg s)) -> (CallSequence (Message.MutMsg s)) -> (m ())
 set_CounterAcceptor'accept'params'counter (CounterAcceptor'accept'params'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -3274,8 +3312,6 @@
 has_CounterAcceptor'accept'params'counter (CounterAcceptor'accept'params'newtype_ struct) = (Std_.isJust <$> (Untyped.getPtr 0 struct))
 newtype CounterAcceptor'accept'results msg
     = CounterAcceptor'accept'results'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg CounterAcceptor'accept'results) where
-    tMsg f (CounterAcceptor'accept'results'newtype_ s) = (CounterAcceptor'accept'results'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (CounterAcceptor'accept'results msg)) where
     fromStruct struct = (Std_.pure (CounterAcceptor'accept'results'newtype_ struct))
 instance (Classes.ToStruct msg (CounterAcceptor'accept'results msg)) where
@@ -3313,8 +3349,6 @@
     toPtr msg (Top'newtype_ (Std_.Just cap)) = (Std_.pure (Std_.Just (Untyped.PtrCap cap)))
 newtype Top'top'params msg
     = Top'top'params'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Top'top'params) where
-    tMsg f (Top'top'params'newtype_ s) = (Top'top'params'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Top'top'params msg)) where
     fromStruct struct = (Std_.pure (Top'top'params'newtype_ struct))
 instance (Classes.ToStruct msg (Top'top'params msg)) where
@@ -3345,8 +3379,6 @@
     newList msg len = (Top'top'params'List_ <$> (Untyped.allocCompositeList msg 0 0 len))
 newtype Top'top'results msg
     = Top'top'results'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Top'top'results) where
-    tMsg f (Top'top'results'newtype_ s) = (Top'top'results'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Top'top'results msg)) where
     fromStruct struct = (Std_.pure (Top'top'results'newtype_ struct))
 instance (Classes.ToStruct msg (Top'top'results msg)) where
@@ -3384,8 +3416,6 @@
     toPtr msg (Left'newtype_ (Std_.Just cap)) = (Std_.pure (Std_.Just (Untyped.PtrCap cap)))
 newtype Left'left'params msg
     = Left'left'params'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Left'left'params) where
-    tMsg f (Left'left'params'newtype_ s) = (Left'left'params'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Left'left'params msg)) where
     fromStruct struct = (Std_.pure (Left'left'params'newtype_ struct))
 instance (Classes.ToStruct msg (Left'left'params msg)) where
@@ -3416,8 +3446,6 @@
     newList msg len = (Left'left'params'List_ <$> (Untyped.allocCompositeList msg 0 0 len))
 newtype Left'left'results msg
     = Left'left'results'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Left'left'results) where
-    tMsg f (Left'left'results'newtype_ s) = (Left'left'results'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Left'left'results msg)) where
     fromStruct struct = (Std_.pure (Left'left'results'newtype_ struct))
 instance (Classes.ToStruct msg (Left'left'results msg)) where
@@ -3455,8 +3483,6 @@
     toPtr msg (Right'newtype_ (Std_.Just cap)) = (Std_.pure (Std_.Just (Untyped.PtrCap cap)))
 newtype Right'right'params msg
     = Right'right'params'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Right'right'params) where
-    tMsg f (Right'right'params'newtype_ s) = (Right'right'params'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Right'right'params msg)) where
     fromStruct struct = (Std_.pure (Right'right'params'newtype_ struct))
 instance (Classes.ToStruct msg (Right'right'params msg)) where
@@ -3487,8 +3513,6 @@
     newList msg len = (Right'right'params'List_ <$> (Untyped.allocCompositeList msg 0 0 len))
 newtype Right'right'results msg
     = Right'right'results'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Right'right'results) where
-    tMsg f (Right'right'results'newtype_ s) = (Right'right'results'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Right'right'results msg)) where
     fromStruct struct = (Std_.pure (Right'right'results'newtype_ struct))
 instance (Classes.ToStruct msg (Right'right'results msg)) where
@@ -3526,8 +3550,6 @@
     toPtr msg (Bottom'newtype_ (Std_.Just cap)) = (Std_.pure (Std_.Just (Untyped.PtrCap cap)))
 newtype Bottom'bottom'params msg
     = Bottom'bottom'params'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Bottom'bottom'params) where
-    tMsg f (Bottom'bottom'params'newtype_ s) = (Bottom'bottom'params'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Bottom'bottom'params msg)) where
     fromStruct struct = (Std_.pure (Bottom'bottom'params'newtype_ struct))
 instance (Classes.ToStruct msg (Bottom'bottom'params msg)) where
@@ -3558,8 +3580,6 @@
     newList msg len = (Bottom'bottom'params'List_ <$> (Untyped.allocCompositeList msg 0 0 len))
 newtype Bottom'bottom'results msg
     = Bottom'bottom'results'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Bottom'bottom'results) where
-    tMsg f (Bottom'bottom'results'newtype_ s) = (Bottom'bottom'results'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Bottom'bottom'results msg)) where
     fromStruct struct = (Std_.pure (Bottom'bottom'results'newtype_ struct))
 instance (Classes.ToStruct msg (Bottom'bottom'results msg)) where
@@ -3590,8 +3610,6 @@
     newList msg len = (Bottom'bottom'results'List_ <$> (Untyped.allocCompositeList msg 0 0 len))
 newtype Defaults msg
     = Defaults'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg Defaults) where
-    tMsg f (Defaults'newtype_ s) = (Defaults'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (Defaults msg)) where
     fromStruct struct = (Std_.pure (Defaults'newtype_ struct))
 instance (Classes.ToStruct msg (Defaults msg)) where
@@ -3620,12 +3638,14 @@
 instance (Basics.MutListElem s (Defaults (Message.MutMsg s))) where
     setIndex (Defaults'newtype_ elt) i (Defaults'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (Defaults'List_ <$> (Untyped.allocCompositeList msg 2 2 len))
-get_Defaults'text :: ((Untyped.ReadCtx m msg)) => (Defaults msg) -> (m (Basics.Text msg))
+get_Defaults'text :: ((Untyped.ReadCtx m msg)
+                     ,(Classes.FromPtr msg (Basics.Text msg))) => (Defaults msg) -> (m (Basics.Text msg))
 get_Defaults'text (Defaults'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Defaults'text :: ((Untyped.RWCtx m s)) => (Defaults (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
+set_Defaults'text :: ((Untyped.RWCtx m s)
+                     ,(Classes.ToPtr s (Basics.Text (Message.MutMsg s)))) => (Defaults (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
 set_Defaults'text (Defaults'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -3638,12 +3658,14 @@
     (set_Defaults'text struct result)
     (Std_.pure result)
     )
-get_Defaults'data_ :: ((Untyped.ReadCtx m msg)) => (Defaults msg) -> (m (Basics.Data msg))
+get_Defaults'data_ :: ((Untyped.ReadCtx m msg)
+                      ,(Classes.FromPtr msg (Basics.Data msg))) => (Defaults msg) -> (m (Basics.Data msg))
 get_Defaults'data_ (Defaults'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 1 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_Defaults'data_ :: ((Untyped.RWCtx m s)) => (Defaults (Message.MutMsg s)) -> (Basics.Data (Message.MutMsg s)) -> (m ())
+set_Defaults'data_ :: ((Untyped.RWCtx m s)
+                      ,(Classes.ToPtr s (Basics.Data (Message.MutMsg s)))) => (Defaults (Message.MutMsg s)) -> (Basics.Data (Message.MutMsg s)) -> (m ())
 set_Defaults'data_ (Defaults'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 1 struct)
@@ -3670,8 +3692,6 @@
 set_Defaults'uint (Defaults'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word32) 1 0 42)
 newtype BenchmarkA msg
     = BenchmarkA'newtype_ (Untyped.Struct msg)
-instance (Untyped.TraverseMsg BenchmarkA) where
-    tMsg f (BenchmarkA'newtype_ s) = (BenchmarkA'newtype_ <$> (Untyped.tMsg f s))
 instance (Classes.FromStruct msg (BenchmarkA msg)) where
     fromStruct struct = (Std_.pure (BenchmarkA'newtype_ struct))
 instance (Classes.ToStruct msg (BenchmarkA msg)) where
@@ -3700,12 +3720,14 @@
 instance (Basics.MutListElem s (BenchmarkA (Message.MutMsg s))) where
     setIndex (BenchmarkA'newtype_ elt) i (BenchmarkA'List_ l) = (Untyped.setIndex elt i l)
     newList msg len = (BenchmarkA'List_ <$> (Untyped.allocCompositeList msg 3 2 len))
-get_BenchmarkA'name :: ((Untyped.ReadCtx m msg)) => (BenchmarkA msg) -> (m (Basics.Text msg))
+get_BenchmarkA'name :: ((Untyped.ReadCtx m msg)
+                       ,(Classes.FromPtr msg (Basics.Text msg))) => (BenchmarkA msg) -> (m (Basics.Text msg))
 get_BenchmarkA'name (BenchmarkA'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 0 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_BenchmarkA'name :: ((Untyped.RWCtx m s)) => (BenchmarkA (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
+set_BenchmarkA'name :: ((Untyped.RWCtx m s)
+                       ,(Classes.ToPtr s (Basics.Text (Message.MutMsg s)))) => (BenchmarkA (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
 set_BenchmarkA'name (BenchmarkA'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 0 struct)
@@ -3722,12 +3744,14 @@
 get_BenchmarkA'birthDay (BenchmarkA'newtype_ struct) = (GenHelpers.getWordField struct 0 0 0)
 set_BenchmarkA'birthDay :: ((Untyped.RWCtx m s)) => (BenchmarkA (Message.MutMsg s)) -> Std_.Int64 -> (m ())
 set_BenchmarkA'birthDay (BenchmarkA'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word64) 0 0 0)
-get_BenchmarkA'phone :: ((Untyped.ReadCtx m msg)) => (BenchmarkA msg) -> (m (Basics.Text msg))
+get_BenchmarkA'phone :: ((Untyped.ReadCtx m msg)
+                        ,(Classes.FromPtr msg (Basics.Text msg))) => (BenchmarkA msg) -> (m (Basics.Text msg))
 get_BenchmarkA'phone (BenchmarkA'newtype_ struct) = (do
     ptr <- (Untyped.getPtr 1 struct)
     (Classes.fromPtr (Untyped.message struct) ptr)
     )
-set_BenchmarkA'phone :: ((Untyped.RWCtx m s)) => (BenchmarkA (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
+set_BenchmarkA'phone :: ((Untyped.RWCtx m s)
+                        ,(Classes.ToPtr s (Basics.Text (Message.MutMsg s)))) => (BenchmarkA (Message.MutMsg s)) -> (Basics.Text (Message.MutMsg s)) -> (m ())
 set_BenchmarkA'phone (BenchmarkA'newtype_ struct) value = (do
     ptr <- (Classes.toPtr (Untyped.message struct) value)
     (Untyped.setPtr ptr 1 struct)
diff --git a/gen/tests/Capnp/Gen/Aircraft/Pure.hs b/gen/tests/Capnp/Gen/Aircraft/Pure.hs
--- a/gen/tests/Capnp/Gen/Aircraft/Pure.hs
+++ b/gen/tests/Capnp/Gen/Aircraft/Pure.hs
@@ -2,2971 +2,2973 @@
 {-# LANGUAGE DuplicateRecordFields #-}
 {-# LANGUAGE FlexibleContexts #-}
 {-# LANGUAGE FlexibleInstances #-}
-{-# LANGUAGE RecordWildCards #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE TypeFamilies #-}
-{-# OPTIONS_GHC -Wno-unused-imports #-}
-{-# OPTIONS_GHC -Wno-dodgy-exports #-}
-{-# OPTIONS_GHC -Wno-unused-matches #-}
-{-# OPTIONS_GHC -Wno-orphans #-}
-module Capnp.Gen.Aircraft.Pure(Capnp.Gen.ById.X832bcc6686a26d56.Airport(..)
-                              ,constDate
-                              ,constList
-                              ,Capnp.Gen.ById.X832bcc6686a26d56.constEnum
-                              ,Zdate(..)
-                              ,Zdata(..)
-                              ,PlaneBase(..)
-                              ,B737(..)
-                              ,A320(..)
-                              ,F16(..)
-                              ,Regression(..)
-                              ,Aircraft(..)
-                              ,Z(..)
-                              ,Z'grp(..)
-                              ,Counter(..)
-                              ,Bag(..)
-                              ,Zserver(..)
-                              ,Zjob(..)
-                              ,VerEmpty(..)
-                              ,VerOneData(..)
-                              ,VerTwoData(..)
-                              ,VerOnePtr(..)
-                              ,VerTwoPtr(..)
-                              ,VerTwoDataTwoPtr(..)
-                              ,HoldsVerEmptyList(..)
-                              ,HoldsVerOneDataList(..)
-                              ,HoldsVerTwoDataList(..)
-                              ,HoldsVerOnePtrList(..)
-                              ,HoldsVerTwoPtrList(..)
-                              ,HoldsVerTwoTwoList(..)
-                              ,HoldsVerTwoTwoPlus(..)
-                              ,VerTwoTwoPlus(..)
-                              ,HoldsText(..)
-                              ,WrapEmpty(..)
-                              ,Wrap2x2(..)
-                              ,Wrap2x2plus(..)
-                              ,VoidUnion(..)
-                              ,Nester1Capn(..)
-                              ,RWTestCapn(..)
-                              ,ListStructCapn(..)
-                              ,Echo(..)
-                              ,Echo'server_(..)
-                              ,export_Echo
-                              ,Echo'echo'params(..)
-                              ,Echo'echo'results(..)
-                              ,Hoth(..)
-                              ,EchoBase(..)
-                              ,EchoBases(..)
-                              ,StackingRoot(..)
-                              ,StackingA(..)
-                              ,StackingB(..)
-                              ,CallSequence(..)
-                              ,CallSequence'server_(..)
-                              ,export_CallSequence
-                              ,CallSequence'getNumber'params(..)
-                              ,CallSequence'getNumber'results(..)
-                              ,CounterFactory(..)
-                              ,CounterFactory'server_(..)
-                              ,export_CounterFactory
-                              ,CounterFactory'newCounter'params(..)
-                              ,CounterFactory'newCounter'results(..)
-                              ,CounterAcceptor(..)
-                              ,CounterAcceptor'server_(..)
-                              ,export_CounterAcceptor
-                              ,CounterAcceptor'accept'params(..)
-                              ,CounterAcceptor'accept'results(..)
-                              ,Top(..)
-                              ,Top'server_(..)
-                              ,export_Top
-                              ,Top'top'params(..)
-                              ,Top'top'results(..)
-                              ,Left(..)
-                              ,Left'server_(..)
-                              ,export_Left
-                              ,Left'left'params(..)
-                              ,Left'left'results(..)
-                              ,Right(..)
-                              ,Right'server_(..)
-                              ,export_Right
-                              ,Right'right'params(..)
-                              ,Right'right'results(..)
-                              ,Bottom(..)
-                              ,Bottom'server_(..)
-                              ,export_Bottom
-                              ,Bottom'bottom'params(..)
-                              ,Bottom'bottom'results(..)
-                              ,Defaults(..)
-                              ,BenchmarkA(..)) where
-import qualified Capnp.GenHelpers.ReExports.Data.Vector as V
-import qualified Capnp.GenHelpers.ReExports.Data.Text as T
-import qualified Capnp.GenHelpers.ReExports.Data.ByteString as BS
-import qualified Capnp.GenHelpers.ReExports.Data.Default as Default
-import qualified GHC.Generics as Generics
-import qualified Control.Monad.IO.Class as MonadIO
-import qualified Capnp.Untyped.Pure as UntypedPure
-import qualified Capnp.Untyped as Untyped
-import qualified Capnp.Message as Message
-import qualified Capnp.Classes as Classes
-import qualified Capnp.Basics.Pure as BasicsPure
-import qualified Capnp.GenHelpers.Pure as GenHelpersPure
-import qualified Capnp.Rpc.Untyped as Rpc
-import qualified Capnp.Rpc.Server as Server
-import qualified Capnp.GenHelpers.Rpc as RpcHelpers
-import qualified Capnp.GenHelpers.ReExports.Control.Concurrent.STM as STM
-import qualified Capnp.GenHelpers.ReExports.Control.Monad.STM.Class as STM
-import qualified Capnp.GenHelpers.ReExports.Supervisors as Supervisors
-import qualified Capnp.Gen.ById.X832bcc6686a26d56
-import qualified Prelude as Std_
-import qualified Data.Word as Std_
-import qualified Data.Int as Std_
-import Prelude ((<$>), (<*>), (>>=))
-constDate :: Zdate
-constDate  = (GenHelpersPure.toPurePtrConst Capnp.Gen.ById.X832bcc6686a26d56.constDate)
-constList :: (V.Vector Zdate)
-constList  = (GenHelpersPure.toPurePtrConst Capnp.Gen.ById.X832bcc6686a26d56.constList)
-data Zdate 
-    = Zdate 
-        {year :: Std_.Int16
-        ,month :: Std_.Word8
-        ,day :: Std_.Word8}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default Zdate) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Zdate) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Zdate) where
-    type Cerial msg Zdate = (Capnp.Gen.ById.X832bcc6686a26d56.Zdate msg)
-    decerialize raw = (Zdate <$> (Capnp.Gen.ById.X832bcc6686a26d56.get_Zdate'year raw)
-                             <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_Zdate'month raw)
-                             <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_Zdate'day raw))
-instance (Classes.Marshal Zdate) where
-    marshalInto raw_ value_ = case value_ of
-        Zdate{..} ->
-            (do
-                (Capnp.Gen.ById.X832bcc6686a26d56.set_Zdate'year raw_ year)
-                (Capnp.Gen.ById.X832bcc6686a26d56.set_Zdate'month raw_ month)
-                (Capnp.Gen.ById.X832bcc6686a26d56.set_Zdate'day raw_ day)
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize Zdate)
-instance (Classes.Cerialize (V.Vector Zdate)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Zdate))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Zdate)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Zdate))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Zdate)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Zdate))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Zdate)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data Zdata 
-    = Zdata 
-        {data_ :: BS.ByteString}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default Zdata) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Zdata) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Zdata) where
-    type Cerial msg Zdata = (Capnp.Gen.ById.X832bcc6686a26d56.Zdata msg)
-    decerialize raw = (Zdata <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Zdata'data_ raw) >>= Classes.decerialize))
-instance (Classes.Marshal Zdata) where
-    marshalInto raw_ value_ = case value_ of
-        Zdata{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) data_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Zdata'data_ raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize Zdata)
-instance (Classes.Cerialize (V.Vector Zdata)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Zdata))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Zdata)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Zdata))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Zdata)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Zdata))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Zdata)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data PlaneBase 
-    = PlaneBase 
-        {name :: T.Text
-        ,homes :: (V.Vector Capnp.Gen.ById.X832bcc6686a26d56.Airport)
-        ,rating :: Std_.Int64
-        ,canFly :: Std_.Bool
-        ,capacity :: Std_.Int64
-        ,maxSpeed :: Std_.Double}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default PlaneBase) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg PlaneBase) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize PlaneBase) where
-    type Cerial msg PlaneBase = (Capnp.Gen.ById.X832bcc6686a26d56.PlaneBase msg)
-    decerialize raw = (PlaneBase <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_PlaneBase'name raw) >>= Classes.decerialize)
-                                 <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_PlaneBase'homes raw) >>= Classes.decerialize)
-                                 <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_PlaneBase'rating raw)
-                                 <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_PlaneBase'canFly raw)
-                                 <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_PlaneBase'capacity raw)
-                                 <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_PlaneBase'maxSpeed raw))
-instance (Classes.Marshal PlaneBase) where
-    marshalInto raw_ value_ = case value_ of
-        PlaneBase{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) name) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_PlaneBase'name raw_))
-                ((Classes.cerialize (Untyped.message raw_) homes) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_PlaneBase'homes raw_))
-                (Capnp.Gen.ById.X832bcc6686a26d56.set_PlaneBase'rating raw_ rating)
-                (Capnp.Gen.ById.X832bcc6686a26d56.set_PlaneBase'canFly raw_ canFly)
-                (Capnp.Gen.ById.X832bcc6686a26d56.set_PlaneBase'capacity raw_ capacity)
-                (Capnp.Gen.ById.X832bcc6686a26d56.set_PlaneBase'maxSpeed raw_ maxSpeed)
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize PlaneBase)
-instance (Classes.Cerialize (V.Vector PlaneBase)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector PlaneBase))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector PlaneBase)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector PlaneBase))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector PlaneBase)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector PlaneBase))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector PlaneBase)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data B737 
-    = B737 
-        {base :: PlaneBase}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default B737) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg B737) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize B737) where
-    type Cerial msg B737 = (Capnp.Gen.ById.X832bcc6686a26d56.B737 msg)
-    decerialize raw = (B737 <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_B737'base raw) >>= Classes.decerialize))
-instance (Classes.Marshal B737) where
-    marshalInto raw_ value_ = case value_ of
-        B737{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) base) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_B737'base raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize B737)
-instance (Classes.Cerialize (V.Vector B737)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector B737))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector B737)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector B737))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector B737)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector B737))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector B737)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data A320 
-    = A320 
-        {base :: PlaneBase}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default A320) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg A320) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize A320) where
-    type Cerial msg A320 = (Capnp.Gen.ById.X832bcc6686a26d56.A320 msg)
-    decerialize raw = (A320 <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_A320'base raw) >>= Classes.decerialize))
-instance (Classes.Marshal A320) where
-    marshalInto raw_ value_ = case value_ of
-        A320{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) base) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_A320'base raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize A320)
-instance (Classes.Cerialize (V.Vector A320)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector A320))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector A320)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector A320))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector A320)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector A320))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector A320)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data F16 
-    = F16 
-        {base :: PlaneBase}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default F16) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg F16) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize F16) where
-    type Cerial msg F16 = (Capnp.Gen.ById.X832bcc6686a26d56.F16 msg)
-    decerialize raw = (F16 <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_F16'base raw) >>= Classes.decerialize))
-instance (Classes.Marshal F16) where
-    marshalInto raw_ value_ = case value_ of
-        F16{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) base) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_F16'base raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize F16)
-instance (Classes.Cerialize (V.Vector F16)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector F16))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector F16)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector F16))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector F16)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector F16))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector F16)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data Regression 
-    = Regression 
-        {base :: PlaneBase
-        ,b0 :: Std_.Double
-        ,beta :: (V.Vector Std_.Double)
-        ,planes :: (V.Vector Aircraft)
-        ,ymu :: Std_.Double
-        ,ysd :: Std_.Double}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default Regression) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Regression) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Regression) where
-    type Cerial msg Regression = (Capnp.Gen.ById.X832bcc6686a26d56.Regression msg)
-    decerialize raw = (Regression <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Regression'base raw) >>= Classes.decerialize)
-                                  <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_Regression'b0 raw)
-                                  <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Regression'beta raw) >>= Classes.decerialize)
-                                  <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Regression'planes raw) >>= Classes.decerialize)
-                                  <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_Regression'ymu raw)
-                                  <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_Regression'ysd raw))
-instance (Classes.Marshal Regression) where
-    marshalInto raw_ value_ = case value_ of
-        Regression{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) base) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Regression'base raw_))
-                (Capnp.Gen.ById.X832bcc6686a26d56.set_Regression'b0 raw_ b0)
-                ((Classes.cerialize (Untyped.message raw_) beta) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Regression'beta raw_))
-                ((Classes.cerialize (Untyped.message raw_) planes) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Regression'planes raw_))
-                (Capnp.Gen.ById.X832bcc6686a26d56.set_Regression'ymu raw_ ymu)
-                (Capnp.Gen.ById.X832bcc6686a26d56.set_Regression'ysd raw_ ysd)
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize Regression)
-instance (Classes.Cerialize (V.Vector Regression)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Regression))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Regression)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Regression))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Regression)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Regression))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Regression)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data Aircraft 
-    = Aircraft'void 
-    | Aircraft'b737 B737
-    | Aircraft'a320 A320
-    | Aircraft'f16 F16
-    | Aircraft'unknown' Std_.Word16
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default Aircraft) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Aircraft) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Aircraft) where
-    type Cerial msg Aircraft = (Capnp.Gen.ById.X832bcc6686a26d56.Aircraft msg)
-    decerialize raw = (do
-        raw <- (Capnp.Gen.ById.X832bcc6686a26d56.get_Aircraft' raw)
-        case raw of
-            (Capnp.Gen.ById.X832bcc6686a26d56.Aircraft'void) ->
-                (Std_.pure Aircraft'void)
-            (Capnp.Gen.ById.X832bcc6686a26d56.Aircraft'b737 raw) ->
-                (Aircraft'b737 <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Aircraft'a320 raw) ->
-                (Aircraft'a320 <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Aircraft'f16 raw) ->
-                (Aircraft'f16 <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Aircraft'unknown' tag) ->
-                (Std_.pure (Aircraft'unknown' tag))
-        )
-instance (Classes.Marshal Aircraft) where
-    marshalInto raw_ value_ = case value_ of
-        (Aircraft'void) ->
-            (Capnp.Gen.ById.X832bcc6686a26d56.set_Aircraft'void raw_)
-        (Aircraft'b737 arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Aircraft'b737 raw_))
-        (Aircraft'a320 arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Aircraft'a320 raw_))
-        (Aircraft'f16 arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Aircraft'f16 raw_))
-        (Aircraft'unknown' tag) ->
-            (Capnp.Gen.ById.X832bcc6686a26d56.set_Aircraft'unknown' raw_ tag)
-instance (Classes.Cerialize Aircraft)
-instance (Classes.Cerialize (V.Vector Aircraft)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Aircraft))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Aircraft)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Aircraft))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Aircraft)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Aircraft))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Aircraft)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data Z 
-    = Z'void 
-    | Z'zz Z
-    | Z'f64 Std_.Double
-    | Z'f32 Std_.Float
-    | Z'i64 Std_.Int64
-    | Z'i32 Std_.Int32
-    | Z'i16 Std_.Int16
-    | Z'i8 Std_.Int8
-    | Z'u64 Std_.Word64
-    | Z'u32 Std_.Word32
-    | Z'u16 Std_.Word16
-    | Z'u8 Std_.Word8
-    | Z'bool Std_.Bool
-    | Z'text T.Text
-    | Z'blob BS.ByteString
-    | Z'f64vec (V.Vector Std_.Double)
-    | Z'f32vec (V.Vector Std_.Float)
-    | Z'i64vec (V.Vector Std_.Int64)
-    | Z'i32vec (V.Vector Std_.Int32)
-    | Z'i16vec (V.Vector Std_.Int16)
-    | Z'i8vec (V.Vector Std_.Int8)
-    | Z'u64vec (V.Vector Std_.Word64)
-    | Z'u32vec (V.Vector Std_.Word32)
-    | Z'u16vec (V.Vector Std_.Word16)
-    | Z'u8vec (V.Vector Std_.Word8)
-    | Z'zvec (V.Vector Z)
-    | Z'zvecvec (V.Vector (V.Vector Z))
-    | Z'zdate Zdate
-    | Z'zdata Zdata
-    | Z'aircraftvec (V.Vector Aircraft)
-    | Z'aircraft Aircraft
-    | Z'regression Regression
-    | Z'planebase PlaneBase
-    | Z'airport Capnp.Gen.ById.X832bcc6686a26d56.Airport
-    | Z'b737 B737
-    | Z'a320 A320
-    | Z'f16 F16
-    | Z'zdatevec (V.Vector Zdate)
-    | Z'zdatavec (V.Vector Zdata)
-    | Z'boolvec (V.Vector Std_.Bool)
-    | Z'datavec (V.Vector BS.ByteString)
-    | Z'textvec (V.Vector T.Text)
-    | Z'grp Z'grp
-    | Z'echo Echo
-    | Z'echoBases EchoBases
-    | Z'unknown' Std_.Word16
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default Z) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Z) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Z) where
-    type Cerial msg Z = (Capnp.Gen.ById.X832bcc6686a26d56.Z msg)
-    decerialize raw = (do
-        raw <- (Capnp.Gen.ById.X832bcc6686a26d56.get_Z' raw)
-        case raw of
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'void) ->
-                (Std_.pure Z'void)
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'zz raw) ->
-                (Z'zz <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'f64 raw) ->
-                (Std_.pure (Z'f64 raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'f32 raw) ->
-                (Std_.pure (Z'f32 raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'i64 raw) ->
-                (Std_.pure (Z'i64 raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'i32 raw) ->
-                (Std_.pure (Z'i32 raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'i16 raw) ->
-                (Std_.pure (Z'i16 raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'i8 raw) ->
-                (Std_.pure (Z'i8 raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'u64 raw) ->
-                (Std_.pure (Z'u64 raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'u32 raw) ->
-                (Std_.pure (Z'u32 raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'u16 raw) ->
-                (Std_.pure (Z'u16 raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'u8 raw) ->
-                (Std_.pure (Z'u8 raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'bool raw) ->
-                (Std_.pure (Z'bool raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'text raw) ->
-                (Z'text <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'blob raw) ->
-                (Z'blob <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'f64vec raw) ->
-                (Z'f64vec <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'f32vec raw) ->
-                (Z'f32vec <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'i64vec raw) ->
-                (Z'i64vec <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'i32vec raw) ->
-                (Z'i32vec <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'i16vec raw) ->
-                (Z'i16vec <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'i8vec raw) ->
-                (Z'i8vec <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'u64vec raw) ->
-                (Z'u64vec <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'u32vec raw) ->
-                (Z'u32vec <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'u16vec raw) ->
-                (Z'u16vec <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'u8vec raw) ->
-                (Z'u8vec <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'zvec raw) ->
-                (Z'zvec <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'zvecvec raw) ->
-                (Z'zvecvec <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'zdate raw) ->
-                (Z'zdate <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'zdata raw) ->
-                (Z'zdata <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'aircraftvec raw) ->
-                (Z'aircraftvec <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'aircraft raw) ->
-                (Z'aircraft <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'regression raw) ->
-                (Z'regression <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'planebase raw) ->
-                (Z'planebase <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'airport raw) ->
-                (Std_.pure (Z'airport raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'b737 raw) ->
-                (Z'b737 <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'a320 raw) ->
-                (Z'a320 <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'f16 raw) ->
-                (Z'f16 <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'zdatevec raw) ->
-                (Z'zdatevec <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'zdatavec raw) ->
-                (Z'zdatavec <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'boolvec raw) ->
-                (Z'boolvec <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'datavec raw) ->
-                (Z'datavec <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'textvec raw) ->
-                (Z'textvec <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'grp raw) ->
-                (Z'grp <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'echo raw) ->
-                (Z'echo <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'echoBases raw) ->
-                (Z'echoBases <$> (Classes.decerialize raw))
-            (Capnp.Gen.ById.X832bcc6686a26d56.Z'unknown' tag) ->
-                (Std_.pure (Z'unknown' tag))
-        )
-instance (Classes.Marshal Z) where
-    marshalInto raw_ value_ = case value_ of
-        (Z'void) ->
-            (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'void raw_)
-        (Z'zz arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'zz raw_))
-        (Z'f64 arg_) ->
-            (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'f64 raw_ arg_)
-        (Z'f32 arg_) ->
-            (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'f32 raw_ arg_)
-        (Z'i64 arg_) ->
-            (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'i64 raw_ arg_)
-        (Z'i32 arg_) ->
-            (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'i32 raw_ arg_)
-        (Z'i16 arg_) ->
-            (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'i16 raw_ arg_)
-        (Z'i8 arg_) ->
-            (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'i8 raw_ arg_)
-        (Z'u64 arg_) ->
-            (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'u64 raw_ arg_)
-        (Z'u32 arg_) ->
-            (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'u32 raw_ arg_)
-        (Z'u16 arg_) ->
-            (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'u16 raw_ arg_)
-        (Z'u8 arg_) ->
-            (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'u8 raw_ arg_)
-        (Z'bool arg_) ->
-            (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'bool raw_ arg_)
-        (Z'text arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'text raw_))
-        (Z'blob arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'blob raw_))
-        (Z'f64vec arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'f64vec raw_))
-        (Z'f32vec arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'f32vec raw_))
-        (Z'i64vec arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'i64vec raw_))
-        (Z'i32vec arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'i32vec raw_))
-        (Z'i16vec arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'i16vec raw_))
-        (Z'i8vec arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'i8vec raw_))
-        (Z'u64vec arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'u64vec raw_))
-        (Z'u32vec arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'u32vec raw_))
-        (Z'u16vec arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'u16vec raw_))
-        (Z'u8vec arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'u8vec raw_))
-        (Z'zvec arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'zvec raw_))
-        (Z'zvecvec arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'zvecvec raw_))
-        (Z'zdate arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'zdate raw_))
-        (Z'zdata arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'zdata raw_))
-        (Z'aircraftvec arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'aircraftvec raw_))
-        (Z'aircraft arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'aircraft raw_))
-        (Z'regression arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'regression raw_))
-        (Z'planebase arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'planebase raw_))
-        (Z'airport arg_) ->
-            (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'airport raw_ arg_)
-        (Z'b737 arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'b737 raw_))
-        (Z'a320 arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'a320 raw_))
-        (Z'f16 arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'f16 raw_))
-        (Z'zdatevec arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'zdatevec raw_))
-        (Z'zdatavec arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'zdatavec raw_))
-        (Z'boolvec arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'boolvec raw_))
-        (Z'datavec arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'datavec raw_))
-        (Z'textvec arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'textvec raw_))
-        (Z'grp arg_) ->
-            (do
-                raw_ <- (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'grp raw_)
-                (Classes.marshalInto raw_ arg_)
-                )
-        (Z'echo arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'echo raw_))
-        (Z'echoBases arg_) ->
-            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'echoBases raw_))
-        (Z'unknown' tag) ->
-            (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'unknown' raw_ tag)
-instance (Classes.Cerialize Z)
-instance (Classes.Cerialize (V.Vector Z)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Z))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Z)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Z))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Z)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Z))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Z)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data Z'grp 
-    = Z'grp' 
-        {first :: Std_.Word64
-        ,second :: Std_.Word64}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default Z'grp) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Z'grp) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Z'grp) where
-    type Cerial msg Z'grp = (Capnp.Gen.ById.X832bcc6686a26d56.Z'grp msg)
-    decerialize raw = (Z'grp' <$> (Capnp.Gen.ById.X832bcc6686a26d56.get_Z'grp'first raw)
-                              <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_Z'grp'second raw))
-instance (Classes.Marshal Z'grp) where
-    marshalInto raw_ value_ = case value_ of
-        Z'grp'{..} ->
-            (do
-                (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'grp'first raw_ first)
-                (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'grp'second raw_ second)
-                (Std_.pure ())
-                )
-data Counter 
-    = Counter 
-        {size :: Std_.Int64
-        ,words :: T.Text
-        ,wordlist :: (V.Vector T.Text)}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default Counter) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Counter) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Counter) where
-    type Cerial msg Counter = (Capnp.Gen.ById.X832bcc6686a26d56.Counter msg)
-    decerialize raw = (Counter <$> (Capnp.Gen.ById.X832bcc6686a26d56.get_Counter'size raw)
-                               <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Counter'words raw) >>= Classes.decerialize)
-                               <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Counter'wordlist raw) >>= Classes.decerialize))
-instance (Classes.Marshal Counter) where
-    marshalInto raw_ value_ = case value_ of
-        Counter{..} ->
-            (do
-                (Capnp.Gen.ById.X832bcc6686a26d56.set_Counter'size raw_ size)
-                ((Classes.cerialize (Untyped.message raw_) words) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Counter'words raw_))
-                ((Classes.cerialize (Untyped.message raw_) wordlist) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Counter'wordlist raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize Counter)
-instance (Classes.Cerialize (V.Vector Counter)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Counter))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Counter)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Counter))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Counter)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Counter))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Counter)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data Bag 
-    = Bag 
-        {counter :: Counter}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default Bag) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Bag) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Bag) where
-    type Cerial msg Bag = (Capnp.Gen.ById.X832bcc6686a26d56.Bag msg)
-    decerialize raw = (Bag <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Bag'counter raw) >>= Classes.decerialize))
-instance (Classes.Marshal Bag) where
-    marshalInto raw_ value_ = case value_ of
-        Bag{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) counter) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Bag'counter raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize Bag)
-instance (Classes.Cerialize (V.Vector Bag)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Bag))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Bag)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Bag))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Bag)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Bag))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Bag)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data Zserver 
-    = Zserver 
-        {waitingjobs :: (V.Vector Zjob)}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default Zserver) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Zserver) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Zserver) where
-    type Cerial msg Zserver = (Capnp.Gen.ById.X832bcc6686a26d56.Zserver msg)
-    decerialize raw = (Zserver <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Zserver'waitingjobs raw) >>= Classes.decerialize))
-instance (Classes.Marshal Zserver) where
-    marshalInto raw_ value_ = case value_ of
-        Zserver{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) waitingjobs) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Zserver'waitingjobs raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize Zserver)
-instance (Classes.Cerialize (V.Vector Zserver)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Zserver))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Zserver)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Zserver))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Zserver)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Zserver))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Zserver)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data Zjob 
-    = Zjob 
-        {cmd :: T.Text
-        ,args :: (V.Vector T.Text)}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default Zjob) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Zjob) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Zjob) where
-    type Cerial msg Zjob = (Capnp.Gen.ById.X832bcc6686a26d56.Zjob msg)
-    decerialize raw = (Zjob <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Zjob'cmd raw) >>= Classes.decerialize)
-                            <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Zjob'args raw) >>= Classes.decerialize))
-instance (Classes.Marshal Zjob) where
-    marshalInto raw_ value_ = case value_ of
-        Zjob{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) cmd) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Zjob'cmd raw_))
-                ((Classes.cerialize (Untyped.message raw_) args) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Zjob'args raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize Zjob)
-instance (Classes.Cerialize (V.Vector Zjob)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Zjob))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Zjob)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Zjob))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Zjob)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Zjob))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Zjob)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data VerEmpty 
-    = VerEmpty 
-        {}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default VerEmpty) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg VerEmpty) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize VerEmpty) where
-    type Cerial msg VerEmpty = (Capnp.Gen.ById.X832bcc6686a26d56.VerEmpty msg)
-    decerialize raw = (Std_.pure VerEmpty)
-instance (Classes.Marshal VerEmpty) where
-    marshalInto raw_ value_ = case value_ of
-        (VerEmpty) ->
-            (do
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize VerEmpty)
-instance (Classes.Cerialize (V.Vector VerEmpty)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector VerEmpty))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector VerEmpty)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector VerEmpty))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector VerEmpty)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector VerEmpty))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector VerEmpty)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data VerOneData 
-    = VerOneData 
-        {val :: Std_.Int16}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default VerOneData) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg VerOneData) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize VerOneData) where
-    type Cerial msg VerOneData = (Capnp.Gen.ById.X832bcc6686a26d56.VerOneData msg)
-    decerialize raw = (VerOneData <$> (Capnp.Gen.ById.X832bcc6686a26d56.get_VerOneData'val raw))
-instance (Classes.Marshal VerOneData) where
-    marshalInto raw_ value_ = case value_ of
-        VerOneData{..} ->
-            (do
-                (Capnp.Gen.ById.X832bcc6686a26d56.set_VerOneData'val raw_ val)
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize VerOneData)
-instance (Classes.Cerialize (V.Vector VerOneData)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector VerOneData))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector VerOneData)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector VerOneData))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector VerOneData)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector VerOneData))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector VerOneData)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data VerTwoData 
-    = VerTwoData 
-        {val :: Std_.Int16
-        ,duo :: Std_.Int64}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default VerTwoData) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg VerTwoData) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize VerTwoData) where
-    type Cerial msg VerTwoData = (Capnp.Gen.ById.X832bcc6686a26d56.VerTwoData msg)
-    decerialize raw = (VerTwoData <$> (Capnp.Gen.ById.X832bcc6686a26d56.get_VerTwoData'val raw)
-                                  <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_VerTwoData'duo raw))
-instance (Classes.Marshal VerTwoData) where
-    marshalInto raw_ value_ = case value_ of
-        VerTwoData{..} ->
-            (do
-                (Capnp.Gen.ById.X832bcc6686a26d56.set_VerTwoData'val raw_ val)
-                (Capnp.Gen.ById.X832bcc6686a26d56.set_VerTwoData'duo raw_ duo)
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize VerTwoData)
-instance (Classes.Cerialize (V.Vector VerTwoData)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector VerTwoData))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector VerTwoData)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector VerTwoData))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector VerTwoData)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector VerTwoData))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector VerTwoData)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data VerOnePtr 
-    = VerOnePtr 
-        {ptr :: VerOneData}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default VerOnePtr) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg VerOnePtr) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize VerOnePtr) where
-    type Cerial msg VerOnePtr = (Capnp.Gen.ById.X832bcc6686a26d56.VerOnePtr msg)
-    decerialize raw = (VerOnePtr <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_VerOnePtr'ptr raw) >>= Classes.decerialize))
-instance (Classes.Marshal VerOnePtr) where
-    marshalInto raw_ value_ = case value_ of
-        VerOnePtr{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) ptr) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_VerOnePtr'ptr raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize VerOnePtr)
-instance (Classes.Cerialize (V.Vector VerOnePtr)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector VerOnePtr))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector VerOnePtr)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector VerOnePtr))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector VerOnePtr)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector VerOnePtr))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector VerOnePtr)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data VerTwoPtr 
-    = VerTwoPtr 
-        {ptr1 :: VerOneData
-        ,ptr2 :: VerOneData}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default VerTwoPtr) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg VerTwoPtr) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize VerTwoPtr) where
-    type Cerial msg VerTwoPtr = (Capnp.Gen.ById.X832bcc6686a26d56.VerTwoPtr msg)
-    decerialize raw = (VerTwoPtr <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_VerTwoPtr'ptr1 raw) >>= Classes.decerialize)
-                                 <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_VerTwoPtr'ptr2 raw) >>= Classes.decerialize))
-instance (Classes.Marshal VerTwoPtr) where
-    marshalInto raw_ value_ = case value_ of
-        VerTwoPtr{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) ptr1) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_VerTwoPtr'ptr1 raw_))
-                ((Classes.cerialize (Untyped.message raw_) ptr2) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_VerTwoPtr'ptr2 raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize VerTwoPtr)
-instance (Classes.Cerialize (V.Vector VerTwoPtr)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector VerTwoPtr))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector VerTwoPtr)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector VerTwoPtr))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector VerTwoPtr)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector VerTwoPtr))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector VerTwoPtr)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data VerTwoDataTwoPtr 
-    = VerTwoDataTwoPtr 
-        {val :: Std_.Int16
-        ,duo :: Std_.Int64
-        ,ptr1 :: VerOneData
-        ,ptr2 :: VerOneData}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default VerTwoDataTwoPtr) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg VerTwoDataTwoPtr) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize VerTwoDataTwoPtr) where
-    type Cerial msg VerTwoDataTwoPtr = (Capnp.Gen.ById.X832bcc6686a26d56.VerTwoDataTwoPtr msg)
-    decerialize raw = (VerTwoDataTwoPtr <$> (Capnp.Gen.ById.X832bcc6686a26d56.get_VerTwoDataTwoPtr'val raw)
-                                        <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_VerTwoDataTwoPtr'duo raw)
-                                        <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_VerTwoDataTwoPtr'ptr1 raw) >>= Classes.decerialize)
-                                        <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_VerTwoDataTwoPtr'ptr2 raw) >>= Classes.decerialize))
-instance (Classes.Marshal VerTwoDataTwoPtr) where
-    marshalInto raw_ value_ = case value_ of
-        VerTwoDataTwoPtr{..} ->
-            (do
-                (Capnp.Gen.ById.X832bcc6686a26d56.set_VerTwoDataTwoPtr'val raw_ val)
-                (Capnp.Gen.ById.X832bcc6686a26d56.set_VerTwoDataTwoPtr'duo raw_ duo)
-                ((Classes.cerialize (Untyped.message raw_) ptr1) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_VerTwoDataTwoPtr'ptr1 raw_))
-                ((Classes.cerialize (Untyped.message raw_) ptr2) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_VerTwoDataTwoPtr'ptr2 raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize VerTwoDataTwoPtr)
-instance (Classes.Cerialize (V.Vector VerTwoDataTwoPtr)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector VerTwoDataTwoPtr))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector VerTwoDataTwoPtr)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector VerTwoDataTwoPtr))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector VerTwoDataTwoPtr)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector VerTwoDataTwoPtr))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector VerTwoDataTwoPtr)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data HoldsVerEmptyList 
-    = HoldsVerEmptyList 
-        {mylist :: (V.Vector VerEmpty)}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default HoldsVerEmptyList) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg HoldsVerEmptyList) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize HoldsVerEmptyList) where
-    type Cerial msg HoldsVerEmptyList = (Capnp.Gen.ById.X832bcc6686a26d56.HoldsVerEmptyList msg)
-    decerialize raw = (HoldsVerEmptyList <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_HoldsVerEmptyList'mylist raw) >>= Classes.decerialize))
-instance (Classes.Marshal HoldsVerEmptyList) where
-    marshalInto raw_ value_ = case value_ of
-        HoldsVerEmptyList{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) mylist) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_HoldsVerEmptyList'mylist raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize HoldsVerEmptyList)
-instance (Classes.Cerialize (V.Vector HoldsVerEmptyList)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector HoldsVerEmptyList))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector HoldsVerEmptyList)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector HoldsVerEmptyList))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector HoldsVerEmptyList)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector HoldsVerEmptyList))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector HoldsVerEmptyList)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data HoldsVerOneDataList 
-    = HoldsVerOneDataList 
-        {mylist :: (V.Vector VerOneData)}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default HoldsVerOneDataList) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg HoldsVerOneDataList) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize HoldsVerOneDataList) where
-    type Cerial msg HoldsVerOneDataList = (Capnp.Gen.ById.X832bcc6686a26d56.HoldsVerOneDataList msg)
-    decerialize raw = (HoldsVerOneDataList <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_HoldsVerOneDataList'mylist raw) >>= Classes.decerialize))
-instance (Classes.Marshal HoldsVerOneDataList) where
-    marshalInto raw_ value_ = case value_ of
-        HoldsVerOneDataList{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) mylist) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_HoldsVerOneDataList'mylist raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize HoldsVerOneDataList)
-instance (Classes.Cerialize (V.Vector HoldsVerOneDataList)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector HoldsVerOneDataList))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector HoldsVerOneDataList)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector HoldsVerOneDataList))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector HoldsVerOneDataList)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector HoldsVerOneDataList))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector HoldsVerOneDataList)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data HoldsVerTwoDataList 
-    = HoldsVerTwoDataList 
-        {mylist :: (V.Vector VerTwoData)}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default HoldsVerTwoDataList) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg HoldsVerTwoDataList) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize HoldsVerTwoDataList) where
-    type Cerial msg HoldsVerTwoDataList = (Capnp.Gen.ById.X832bcc6686a26d56.HoldsVerTwoDataList msg)
-    decerialize raw = (HoldsVerTwoDataList <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_HoldsVerTwoDataList'mylist raw) >>= Classes.decerialize))
-instance (Classes.Marshal HoldsVerTwoDataList) where
-    marshalInto raw_ value_ = case value_ of
-        HoldsVerTwoDataList{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) mylist) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_HoldsVerTwoDataList'mylist raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize HoldsVerTwoDataList)
-instance (Classes.Cerialize (V.Vector HoldsVerTwoDataList)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector HoldsVerTwoDataList))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector HoldsVerTwoDataList)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector HoldsVerTwoDataList))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector HoldsVerTwoDataList)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector HoldsVerTwoDataList))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector HoldsVerTwoDataList)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data HoldsVerOnePtrList 
-    = HoldsVerOnePtrList 
-        {mylist :: (V.Vector VerOnePtr)}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default HoldsVerOnePtrList) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg HoldsVerOnePtrList) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize HoldsVerOnePtrList) where
-    type Cerial msg HoldsVerOnePtrList = (Capnp.Gen.ById.X832bcc6686a26d56.HoldsVerOnePtrList msg)
-    decerialize raw = (HoldsVerOnePtrList <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_HoldsVerOnePtrList'mylist raw) >>= Classes.decerialize))
-instance (Classes.Marshal HoldsVerOnePtrList) where
-    marshalInto raw_ value_ = case value_ of
-        HoldsVerOnePtrList{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) mylist) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_HoldsVerOnePtrList'mylist raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize HoldsVerOnePtrList)
-instance (Classes.Cerialize (V.Vector HoldsVerOnePtrList)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector HoldsVerOnePtrList))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector HoldsVerOnePtrList)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector HoldsVerOnePtrList))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector HoldsVerOnePtrList)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector HoldsVerOnePtrList))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector HoldsVerOnePtrList)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data HoldsVerTwoPtrList 
-    = HoldsVerTwoPtrList 
-        {mylist :: (V.Vector VerTwoPtr)}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default HoldsVerTwoPtrList) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg HoldsVerTwoPtrList) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize HoldsVerTwoPtrList) where
-    type Cerial msg HoldsVerTwoPtrList = (Capnp.Gen.ById.X832bcc6686a26d56.HoldsVerTwoPtrList msg)
-    decerialize raw = (HoldsVerTwoPtrList <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_HoldsVerTwoPtrList'mylist raw) >>= Classes.decerialize))
-instance (Classes.Marshal HoldsVerTwoPtrList) where
-    marshalInto raw_ value_ = case value_ of
-        HoldsVerTwoPtrList{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) mylist) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_HoldsVerTwoPtrList'mylist raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize HoldsVerTwoPtrList)
-instance (Classes.Cerialize (V.Vector HoldsVerTwoPtrList)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector HoldsVerTwoPtrList))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector HoldsVerTwoPtrList)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector HoldsVerTwoPtrList))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector HoldsVerTwoPtrList)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector HoldsVerTwoPtrList))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector HoldsVerTwoPtrList)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data HoldsVerTwoTwoList 
-    = HoldsVerTwoTwoList 
-        {mylist :: (V.Vector VerTwoDataTwoPtr)}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default HoldsVerTwoTwoList) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg HoldsVerTwoTwoList) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize HoldsVerTwoTwoList) where
-    type Cerial msg HoldsVerTwoTwoList = (Capnp.Gen.ById.X832bcc6686a26d56.HoldsVerTwoTwoList msg)
-    decerialize raw = (HoldsVerTwoTwoList <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_HoldsVerTwoTwoList'mylist raw) >>= Classes.decerialize))
-instance (Classes.Marshal HoldsVerTwoTwoList) where
-    marshalInto raw_ value_ = case value_ of
-        HoldsVerTwoTwoList{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) mylist) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_HoldsVerTwoTwoList'mylist raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize HoldsVerTwoTwoList)
-instance (Classes.Cerialize (V.Vector HoldsVerTwoTwoList)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector HoldsVerTwoTwoList))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector HoldsVerTwoTwoList)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector HoldsVerTwoTwoList))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector HoldsVerTwoTwoList)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector HoldsVerTwoTwoList))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector HoldsVerTwoTwoList)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data HoldsVerTwoTwoPlus 
-    = HoldsVerTwoTwoPlus 
-        {mylist :: (V.Vector VerTwoTwoPlus)}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default HoldsVerTwoTwoPlus) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg HoldsVerTwoTwoPlus) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize HoldsVerTwoTwoPlus) where
-    type Cerial msg HoldsVerTwoTwoPlus = (Capnp.Gen.ById.X832bcc6686a26d56.HoldsVerTwoTwoPlus msg)
-    decerialize raw = (HoldsVerTwoTwoPlus <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_HoldsVerTwoTwoPlus'mylist raw) >>= Classes.decerialize))
-instance (Classes.Marshal HoldsVerTwoTwoPlus) where
-    marshalInto raw_ value_ = case value_ of
-        HoldsVerTwoTwoPlus{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) mylist) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_HoldsVerTwoTwoPlus'mylist raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize HoldsVerTwoTwoPlus)
-instance (Classes.Cerialize (V.Vector HoldsVerTwoTwoPlus)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector HoldsVerTwoTwoPlus))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector HoldsVerTwoTwoPlus)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector HoldsVerTwoTwoPlus))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector HoldsVerTwoTwoPlus)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector HoldsVerTwoTwoPlus))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector HoldsVerTwoTwoPlus)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data VerTwoTwoPlus 
-    = VerTwoTwoPlus 
-        {val :: Std_.Int16
-        ,duo :: Std_.Int64
-        ,ptr1 :: VerTwoDataTwoPtr
-        ,ptr2 :: VerTwoDataTwoPtr
-        ,tre :: Std_.Int64
-        ,lst3 :: (V.Vector Std_.Int64)}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default VerTwoTwoPlus) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg VerTwoTwoPlus) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize VerTwoTwoPlus) where
-    type Cerial msg VerTwoTwoPlus = (Capnp.Gen.ById.X832bcc6686a26d56.VerTwoTwoPlus msg)
-    decerialize raw = (VerTwoTwoPlus <$> (Capnp.Gen.ById.X832bcc6686a26d56.get_VerTwoTwoPlus'val raw)
-                                     <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_VerTwoTwoPlus'duo raw)
-                                     <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_VerTwoTwoPlus'ptr1 raw) >>= Classes.decerialize)
-                                     <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_VerTwoTwoPlus'ptr2 raw) >>= Classes.decerialize)
-                                     <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_VerTwoTwoPlus'tre raw)
-                                     <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_VerTwoTwoPlus'lst3 raw) >>= Classes.decerialize))
-instance (Classes.Marshal VerTwoTwoPlus) where
-    marshalInto raw_ value_ = case value_ of
-        VerTwoTwoPlus{..} ->
-            (do
-                (Capnp.Gen.ById.X832bcc6686a26d56.set_VerTwoTwoPlus'val raw_ val)
-                (Capnp.Gen.ById.X832bcc6686a26d56.set_VerTwoTwoPlus'duo raw_ duo)
-                ((Classes.cerialize (Untyped.message raw_) ptr1) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_VerTwoTwoPlus'ptr1 raw_))
-                ((Classes.cerialize (Untyped.message raw_) ptr2) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_VerTwoTwoPlus'ptr2 raw_))
-                (Capnp.Gen.ById.X832bcc6686a26d56.set_VerTwoTwoPlus'tre raw_ tre)
-                ((Classes.cerialize (Untyped.message raw_) lst3) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_VerTwoTwoPlus'lst3 raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize VerTwoTwoPlus)
-instance (Classes.Cerialize (V.Vector VerTwoTwoPlus)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector VerTwoTwoPlus))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector VerTwoTwoPlus)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector VerTwoTwoPlus))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector VerTwoTwoPlus)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector VerTwoTwoPlus))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector VerTwoTwoPlus)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data HoldsText 
-    = HoldsText 
-        {txt :: T.Text
-        ,lst :: (V.Vector T.Text)
-        ,lstlst :: (V.Vector (V.Vector T.Text))}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default HoldsText) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg HoldsText) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize HoldsText) where
-    type Cerial msg HoldsText = (Capnp.Gen.ById.X832bcc6686a26d56.HoldsText msg)
-    decerialize raw = (HoldsText <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_HoldsText'txt raw) >>= Classes.decerialize)
-                                 <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_HoldsText'lst raw) >>= Classes.decerialize)
-                                 <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_HoldsText'lstlst raw) >>= Classes.decerialize))
-instance (Classes.Marshal HoldsText) where
-    marshalInto raw_ value_ = case value_ of
-        HoldsText{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) txt) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_HoldsText'txt raw_))
-                ((Classes.cerialize (Untyped.message raw_) lst) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_HoldsText'lst raw_))
-                ((Classes.cerialize (Untyped.message raw_) lstlst) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_HoldsText'lstlst raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize HoldsText)
-instance (Classes.Cerialize (V.Vector HoldsText)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector HoldsText))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector HoldsText)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector HoldsText))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector HoldsText)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector HoldsText))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector HoldsText)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data WrapEmpty 
-    = WrapEmpty 
-        {mightNotBeReallyEmpty :: VerEmpty}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default WrapEmpty) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg WrapEmpty) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize WrapEmpty) where
-    type Cerial msg WrapEmpty = (Capnp.Gen.ById.X832bcc6686a26d56.WrapEmpty msg)
-    decerialize raw = (WrapEmpty <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_WrapEmpty'mightNotBeReallyEmpty raw) >>= Classes.decerialize))
-instance (Classes.Marshal WrapEmpty) where
-    marshalInto raw_ value_ = case value_ of
-        WrapEmpty{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) mightNotBeReallyEmpty) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_WrapEmpty'mightNotBeReallyEmpty raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize WrapEmpty)
-instance (Classes.Cerialize (V.Vector WrapEmpty)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector WrapEmpty))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector WrapEmpty)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector WrapEmpty))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector WrapEmpty)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector WrapEmpty))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector WrapEmpty)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data Wrap2x2 
-    = Wrap2x2 
-        {mightNotBeReallyEmpty :: VerTwoDataTwoPtr}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default Wrap2x2) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Wrap2x2) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Wrap2x2) where
-    type Cerial msg Wrap2x2 = (Capnp.Gen.ById.X832bcc6686a26d56.Wrap2x2 msg)
-    decerialize raw = (Wrap2x2 <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Wrap2x2'mightNotBeReallyEmpty raw) >>= Classes.decerialize))
-instance (Classes.Marshal Wrap2x2) where
-    marshalInto raw_ value_ = case value_ of
-        Wrap2x2{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) mightNotBeReallyEmpty) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Wrap2x2'mightNotBeReallyEmpty raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize Wrap2x2)
-instance (Classes.Cerialize (V.Vector Wrap2x2)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Wrap2x2))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Wrap2x2)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Wrap2x2))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Wrap2x2)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Wrap2x2))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Wrap2x2)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data Wrap2x2plus 
-    = Wrap2x2plus 
-        {mightNotBeReallyEmpty :: VerTwoTwoPlus}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default Wrap2x2plus) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Wrap2x2plus) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Wrap2x2plus) where
-    type Cerial msg Wrap2x2plus = (Capnp.Gen.ById.X832bcc6686a26d56.Wrap2x2plus msg)
-    decerialize raw = (Wrap2x2plus <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Wrap2x2plus'mightNotBeReallyEmpty raw) >>= Classes.decerialize))
-instance (Classes.Marshal Wrap2x2plus) where
-    marshalInto raw_ value_ = case value_ of
-        Wrap2x2plus{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) mightNotBeReallyEmpty) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Wrap2x2plus'mightNotBeReallyEmpty raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize Wrap2x2plus)
-instance (Classes.Cerialize (V.Vector Wrap2x2plus)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Wrap2x2plus))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Wrap2x2plus)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Wrap2x2plus))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Wrap2x2plus)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Wrap2x2plus))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Wrap2x2plus)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data VoidUnion 
-    = VoidUnion'a 
-    | VoidUnion'b 
-    | VoidUnion'unknown' Std_.Word16
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default VoidUnion) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg VoidUnion) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize VoidUnion) where
-    type Cerial msg VoidUnion = (Capnp.Gen.ById.X832bcc6686a26d56.VoidUnion msg)
-    decerialize raw = (do
-        raw <- (Capnp.Gen.ById.X832bcc6686a26d56.get_VoidUnion' raw)
-        case raw of
-            (Capnp.Gen.ById.X832bcc6686a26d56.VoidUnion'a) ->
-                (Std_.pure VoidUnion'a)
-            (Capnp.Gen.ById.X832bcc6686a26d56.VoidUnion'b) ->
-                (Std_.pure VoidUnion'b)
-            (Capnp.Gen.ById.X832bcc6686a26d56.VoidUnion'unknown' tag) ->
-                (Std_.pure (VoidUnion'unknown' tag))
-        )
-instance (Classes.Marshal VoidUnion) where
-    marshalInto raw_ value_ = case value_ of
-        (VoidUnion'a) ->
-            (Capnp.Gen.ById.X832bcc6686a26d56.set_VoidUnion'a raw_)
-        (VoidUnion'b) ->
-            (Capnp.Gen.ById.X832bcc6686a26d56.set_VoidUnion'b raw_)
-        (VoidUnion'unknown' tag) ->
-            (Capnp.Gen.ById.X832bcc6686a26d56.set_VoidUnion'unknown' raw_ tag)
-instance (Classes.Cerialize VoidUnion)
-instance (Classes.Cerialize (V.Vector VoidUnion)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector VoidUnion))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector VoidUnion)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector VoidUnion))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector VoidUnion)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector VoidUnion))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector VoidUnion)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data Nester1Capn 
-    = Nester1Capn 
-        {strs :: (V.Vector T.Text)}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default Nester1Capn) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Nester1Capn) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Nester1Capn) where
-    type Cerial msg Nester1Capn = (Capnp.Gen.ById.X832bcc6686a26d56.Nester1Capn msg)
-    decerialize raw = (Nester1Capn <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Nester1Capn'strs raw) >>= Classes.decerialize))
-instance (Classes.Marshal Nester1Capn) where
-    marshalInto raw_ value_ = case value_ of
-        Nester1Capn{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) strs) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Nester1Capn'strs raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize Nester1Capn)
-instance (Classes.Cerialize (V.Vector Nester1Capn)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Nester1Capn))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Nester1Capn)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Nester1Capn))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Nester1Capn)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Nester1Capn))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Nester1Capn)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data RWTestCapn 
-    = RWTestCapn 
-        {nestMatrix :: (V.Vector (V.Vector Nester1Capn))}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default RWTestCapn) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg RWTestCapn) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize RWTestCapn) where
-    type Cerial msg RWTestCapn = (Capnp.Gen.ById.X832bcc6686a26d56.RWTestCapn msg)
-    decerialize raw = (RWTestCapn <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_RWTestCapn'nestMatrix raw) >>= Classes.decerialize))
-instance (Classes.Marshal RWTestCapn) where
-    marshalInto raw_ value_ = case value_ of
-        RWTestCapn{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) nestMatrix) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_RWTestCapn'nestMatrix raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize RWTestCapn)
-instance (Classes.Cerialize (V.Vector RWTestCapn)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector RWTestCapn))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector RWTestCapn)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector RWTestCapn))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector RWTestCapn)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector RWTestCapn))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector RWTestCapn)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data ListStructCapn 
-    = ListStructCapn 
-        {vec :: (V.Vector Nester1Capn)}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default ListStructCapn) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg ListStructCapn) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize ListStructCapn) where
-    type Cerial msg ListStructCapn = (Capnp.Gen.ById.X832bcc6686a26d56.ListStructCapn msg)
-    decerialize raw = (ListStructCapn <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_ListStructCapn'vec raw) >>= Classes.decerialize))
-instance (Classes.Marshal ListStructCapn) where
-    marshalInto raw_ value_ = case value_ of
-        ListStructCapn{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) vec) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_ListStructCapn'vec raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize ListStructCapn)
-instance (Classes.Cerialize (V.Vector ListStructCapn)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector ListStructCapn))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector ListStructCapn)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector ListStructCapn))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector ListStructCapn)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector ListStructCapn))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector ListStructCapn)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-newtype Echo 
-    = Echo Message.Client
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-class ((MonadIO.MonadIO m)
-      ,(Server.Server m cap)) => (Echo'server_ m cap) where
-    {-# MINIMAL echo'echo #-}
-    echo'echo :: cap -> (Server.MethodHandler m Echo'echo'params Echo'echo'results)
-    echo'echo _ = Server.methodUnimplemented
-export_Echo :: ((Echo'server_ Std_.IO a)
-               ,(STM.MonadSTM m)) => Supervisors.Supervisor -> a -> (m Echo)
-export_Echo sup_ server_ = (STM.liftSTM (Echo <$> (Rpc.export sup_ Server.ServerOps{handleCast = (Server.unwrap server_)
-                                                                                   ,handleStop = (Server.shutdown server_)
-                                                                                   ,handleCall = (\interfaceId_ methodId_ -> case interfaceId_ of
-                                                                                       10255578992688506164 ->
-                                                                                           case methodId_ of
-                                                                                               0 ->
-                                                                                                   (Server.toUntypedHandler (echo'echo server_))
-                                                                                               _ ->
-                                                                                                   Server.methodUnimplemented
-                                                                                       _ ->
-                                                                                           Server.methodUnimplemented)})))
-instance (Rpc.IsClient Echo) where
-    fromClient  = Echo
-    toClient (Echo client) = client
-instance (Classes.FromPtr msg Echo) where
-    fromPtr  = RpcHelpers.isClientFromPtr
-instance (Classes.ToPtr s Echo) where
-    toPtr  = RpcHelpers.isClientToPtr
-instance (Classes.Decerialize Echo) where
-    type Cerial msg Echo = (Capnp.Gen.ById.X832bcc6686a26d56.Echo msg)
-    decerialize (Capnp.Gen.ById.X832bcc6686a26d56.Echo'newtype_ maybeCap) = case maybeCap of
-        (Std_.Nothing) ->
-            (Std_.pure (Echo Message.nullClient))
-        (Std_.Just cap) ->
-            (Echo <$> (Untyped.getClient cap))
-instance (Classes.Cerialize Echo) where
-    cerialize msg (Echo client) = (Capnp.Gen.ById.X832bcc6686a26d56.Echo'newtype_ <$> (Std_.Just <$> (Untyped.appendCap msg client)))
-instance (Server.Server Std_.IO Echo)
-instance (Echo'server_ Std_.IO Echo) where
-    echo'echo (Echo client) = (Rpc.clientMethodHandler 10255578992688506164 0 client)
-data Echo'echo'params 
-    = Echo'echo'params 
-        {in_ :: T.Text}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default Echo'echo'params) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Echo'echo'params) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Echo'echo'params) where
-    type Cerial msg Echo'echo'params = (Capnp.Gen.ById.X832bcc6686a26d56.Echo'echo'params msg)
-    decerialize raw = (Echo'echo'params <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Echo'echo'params'in_ raw) >>= Classes.decerialize))
-instance (Classes.Marshal Echo'echo'params) where
-    marshalInto raw_ value_ = case value_ of
-        Echo'echo'params{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) in_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Echo'echo'params'in_ raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize Echo'echo'params)
-instance (Classes.Cerialize (V.Vector Echo'echo'params)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Echo'echo'params))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Echo'echo'params)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Echo'echo'params))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Echo'echo'params)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Echo'echo'params))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Echo'echo'params)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data Echo'echo'results 
-    = Echo'echo'results 
-        {out :: T.Text}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default Echo'echo'results) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Echo'echo'results) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Echo'echo'results) where
-    type Cerial msg Echo'echo'results = (Capnp.Gen.ById.X832bcc6686a26d56.Echo'echo'results msg)
-    decerialize raw = (Echo'echo'results <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Echo'echo'results'out raw) >>= Classes.decerialize))
-instance (Classes.Marshal Echo'echo'results) where
-    marshalInto raw_ value_ = case value_ of
-        Echo'echo'results{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) out) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Echo'echo'results'out raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize Echo'echo'results)
-instance (Classes.Cerialize (V.Vector Echo'echo'results)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Echo'echo'results))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Echo'echo'results)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Echo'echo'results))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Echo'echo'results)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Echo'echo'results))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Echo'echo'results)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data Hoth 
-    = Hoth 
-        {base :: EchoBase}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default Hoth) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Hoth) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Hoth) where
-    type Cerial msg Hoth = (Capnp.Gen.ById.X832bcc6686a26d56.Hoth msg)
-    decerialize raw = (Hoth <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Hoth'base raw) >>= Classes.decerialize))
-instance (Classes.Marshal Hoth) where
-    marshalInto raw_ value_ = case value_ of
-        Hoth{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) base) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Hoth'base raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize Hoth)
-instance (Classes.Cerialize (V.Vector Hoth)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Hoth))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Hoth)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Hoth))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Hoth)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Hoth))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Hoth)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data EchoBase 
-    = EchoBase 
-        {echo :: Echo}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default EchoBase) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg EchoBase) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize EchoBase) where
-    type Cerial msg EchoBase = (Capnp.Gen.ById.X832bcc6686a26d56.EchoBase msg)
-    decerialize raw = (EchoBase <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_EchoBase'echo raw) >>= Classes.decerialize))
-instance (Classes.Marshal EchoBase) where
-    marshalInto raw_ value_ = case value_ of
-        EchoBase{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) echo) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_EchoBase'echo raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize EchoBase)
-instance (Classes.Cerialize (V.Vector EchoBase)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector EchoBase))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector EchoBase)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector EchoBase))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector EchoBase)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector EchoBase))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector EchoBase)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data EchoBases 
-    = EchoBases 
-        {bases :: (V.Vector EchoBase)}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default EchoBases) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg EchoBases) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize EchoBases) where
-    type Cerial msg EchoBases = (Capnp.Gen.ById.X832bcc6686a26d56.EchoBases msg)
-    decerialize raw = (EchoBases <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_EchoBases'bases raw) >>= Classes.decerialize))
-instance (Classes.Marshal EchoBases) where
-    marshalInto raw_ value_ = case value_ of
-        EchoBases{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) bases) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_EchoBases'bases raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize EchoBases)
-instance (Classes.Cerialize (V.Vector EchoBases)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector EchoBases))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector EchoBases)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector EchoBases))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector EchoBases)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector EchoBases))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector EchoBases)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data StackingRoot 
-    = StackingRoot 
-        {aWithDefault :: StackingA
-        ,a :: StackingA}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default StackingRoot) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg StackingRoot) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize StackingRoot) where
-    type Cerial msg StackingRoot = (Capnp.Gen.ById.X832bcc6686a26d56.StackingRoot msg)
-    decerialize raw = (StackingRoot <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_StackingRoot'aWithDefault raw) >>= Classes.decerialize)
-                                    <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_StackingRoot'a raw) >>= Classes.decerialize))
-instance (Classes.Marshal StackingRoot) where
-    marshalInto raw_ value_ = case value_ of
-        StackingRoot{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) aWithDefault) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_StackingRoot'aWithDefault raw_))
-                ((Classes.cerialize (Untyped.message raw_) a) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_StackingRoot'a raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize StackingRoot)
-instance (Classes.Cerialize (V.Vector StackingRoot)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector StackingRoot))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector StackingRoot)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector StackingRoot))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector StackingRoot)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector StackingRoot))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector StackingRoot)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data StackingA 
-    = StackingA 
-        {num :: Std_.Int32
-        ,b :: StackingB}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default StackingA) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg StackingA) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize StackingA) where
-    type Cerial msg StackingA = (Capnp.Gen.ById.X832bcc6686a26d56.StackingA msg)
-    decerialize raw = (StackingA <$> (Capnp.Gen.ById.X832bcc6686a26d56.get_StackingA'num raw)
-                                 <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_StackingA'b raw) >>= Classes.decerialize))
-instance (Classes.Marshal StackingA) where
-    marshalInto raw_ value_ = case value_ of
-        StackingA{..} ->
-            (do
-                (Capnp.Gen.ById.X832bcc6686a26d56.set_StackingA'num raw_ num)
-                ((Classes.cerialize (Untyped.message raw_) b) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_StackingA'b raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize StackingA)
-instance (Classes.Cerialize (V.Vector StackingA)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector StackingA))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector StackingA)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector StackingA))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector StackingA)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector StackingA))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector StackingA)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data StackingB 
-    = StackingB 
-        {num :: Std_.Int32}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default StackingB) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg StackingB) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize StackingB) where
-    type Cerial msg StackingB = (Capnp.Gen.ById.X832bcc6686a26d56.StackingB msg)
-    decerialize raw = (StackingB <$> (Capnp.Gen.ById.X832bcc6686a26d56.get_StackingB'num raw))
-instance (Classes.Marshal StackingB) where
-    marshalInto raw_ value_ = case value_ of
-        StackingB{..} ->
-            (do
-                (Capnp.Gen.ById.X832bcc6686a26d56.set_StackingB'num raw_ num)
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize StackingB)
-instance (Classes.Cerialize (V.Vector StackingB)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector StackingB))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector StackingB)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector StackingB))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector StackingB)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector StackingB))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector StackingB)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-newtype CallSequence 
-    = CallSequence Message.Client
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-class ((MonadIO.MonadIO m)
-      ,(Server.Server m cap)) => (CallSequence'server_ m cap) where
-    {-# MINIMAL callSequence'getNumber #-}
-    callSequence'getNumber :: cap -> (Server.MethodHandler m CallSequence'getNumber'params CallSequence'getNumber'results)
-    callSequence'getNumber _ = Server.methodUnimplemented
-export_CallSequence :: ((CallSequence'server_ Std_.IO a)
-                       ,(STM.MonadSTM m)) => Supervisors.Supervisor -> a -> (m CallSequence)
-export_CallSequence sup_ server_ = (STM.liftSTM (CallSequence <$> (Rpc.export sup_ Server.ServerOps{handleCast = (Server.unwrap server_)
-                                                                                                   ,handleStop = (Server.shutdown server_)
-                                                                                                   ,handleCall = (\interfaceId_ methodId_ -> case interfaceId_ of
-                                                                                                       12371070827563042848 ->
-                                                                                                           case methodId_ of
-                                                                                                               0 ->
-                                                                                                                   (Server.toUntypedHandler (callSequence'getNumber server_))
-                                                                                                               _ ->
-                                                                                                                   Server.methodUnimplemented
-                                                                                                       _ ->
-                                                                                                           Server.methodUnimplemented)})))
-instance (Rpc.IsClient CallSequence) where
-    fromClient  = CallSequence
-    toClient (CallSequence client) = client
-instance (Classes.FromPtr msg CallSequence) where
-    fromPtr  = RpcHelpers.isClientFromPtr
-instance (Classes.ToPtr s CallSequence) where
-    toPtr  = RpcHelpers.isClientToPtr
-instance (Classes.Decerialize CallSequence) where
-    type Cerial msg CallSequence = (Capnp.Gen.ById.X832bcc6686a26d56.CallSequence msg)
-    decerialize (Capnp.Gen.ById.X832bcc6686a26d56.CallSequence'newtype_ maybeCap) = case maybeCap of
-        (Std_.Nothing) ->
-            (Std_.pure (CallSequence Message.nullClient))
-        (Std_.Just cap) ->
-            (CallSequence <$> (Untyped.getClient cap))
-instance (Classes.Cerialize CallSequence) where
-    cerialize msg (CallSequence client) = (Capnp.Gen.ById.X832bcc6686a26d56.CallSequence'newtype_ <$> (Std_.Just <$> (Untyped.appendCap msg client)))
-instance (Server.Server Std_.IO CallSequence)
-instance (CallSequence'server_ Std_.IO CallSequence) where
-    callSequence'getNumber (CallSequence client) = (Rpc.clientMethodHandler 12371070827563042848 0 client)
-data CallSequence'getNumber'params 
-    = CallSequence'getNumber'params 
-        {}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default CallSequence'getNumber'params) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg CallSequence'getNumber'params) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize CallSequence'getNumber'params) where
-    type Cerial msg CallSequence'getNumber'params = (Capnp.Gen.ById.X832bcc6686a26d56.CallSequence'getNumber'params msg)
-    decerialize raw = (Std_.pure CallSequence'getNumber'params)
-instance (Classes.Marshal CallSequence'getNumber'params) where
-    marshalInto raw_ value_ = case value_ of
-        (CallSequence'getNumber'params) ->
-            (do
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize CallSequence'getNumber'params)
-instance (Classes.Cerialize (V.Vector CallSequence'getNumber'params)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector CallSequence'getNumber'params))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector CallSequence'getNumber'params)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector CallSequence'getNumber'params))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CallSequence'getNumber'params)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CallSequence'getNumber'params))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CallSequence'getNumber'params)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data CallSequence'getNumber'results 
-    = CallSequence'getNumber'results 
-        {n :: Std_.Word32}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default CallSequence'getNumber'results) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg CallSequence'getNumber'results) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize CallSequence'getNumber'results) where
-    type Cerial msg CallSequence'getNumber'results = (Capnp.Gen.ById.X832bcc6686a26d56.CallSequence'getNumber'results msg)
-    decerialize raw = (CallSequence'getNumber'results <$> (Capnp.Gen.ById.X832bcc6686a26d56.get_CallSequence'getNumber'results'n raw))
-instance (Classes.Marshal CallSequence'getNumber'results) where
-    marshalInto raw_ value_ = case value_ of
-        CallSequence'getNumber'results{..} ->
-            (do
-                (Capnp.Gen.ById.X832bcc6686a26d56.set_CallSequence'getNumber'results'n raw_ n)
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize CallSequence'getNumber'results)
-instance (Classes.Cerialize (V.Vector CallSequence'getNumber'results)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector CallSequence'getNumber'results))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector CallSequence'getNumber'results)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector CallSequence'getNumber'results))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CallSequence'getNumber'results)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CallSequence'getNumber'results))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CallSequence'getNumber'results)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-newtype CounterFactory 
-    = CounterFactory Message.Client
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-class ((MonadIO.MonadIO m)
-      ,(Server.Server m cap)) => (CounterFactory'server_ m cap) where
-    {-# MINIMAL counterFactory'newCounter #-}
-    counterFactory'newCounter :: cap -> (Server.MethodHandler m CounterFactory'newCounter'params CounterFactory'newCounter'results)
-    counterFactory'newCounter _ = Server.methodUnimplemented
-export_CounterFactory :: ((CounterFactory'server_ Std_.IO a)
-                         ,(STM.MonadSTM m)) => Supervisors.Supervisor -> a -> (m CounterFactory)
-export_CounterFactory sup_ server_ = (STM.liftSTM (CounterFactory <$> (Rpc.export sup_ Server.ServerOps{handleCast = (Server.unwrap server_)
-                                                                                                       ,handleStop = (Server.shutdown server_)
-                                                                                                       ,handleCall = (\interfaceId_ methodId_ -> case interfaceId_ of
-                                                                                                           15610220054254702620 ->
-                                                                                                               case methodId_ of
-                                                                                                                   0 ->
-                                                                                                                       (Server.toUntypedHandler (counterFactory'newCounter server_))
-                                                                                                                   _ ->
-                                                                                                                       Server.methodUnimplemented
-                                                                                                           _ ->
-                                                                                                               Server.methodUnimplemented)})))
-instance (Rpc.IsClient CounterFactory) where
-    fromClient  = CounterFactory
-    toClient (CounterFactory client) = client
-instance (Classes.FromPtr msg CounterFactory) where
-    fromPtr  = RpcHelpers.isClientFromPtr
-instance (Classes.ToPtr s CounterFactory) where
-    toPtr  = RpcHelpers.isClientToPtr
-instance (Classes.Decerialize CounterFactory) where
-    type Cerial msg CounterFactory = (Capnp.Gen.ById.X832bcc6686a26d56.CounterFactory msg)
-    decerialize (Capnp.Gen.ById.X832bcc6686a26d56.CounterFactory'newtype_ maybeCap) = case maybeCap of
-        (Std_.Nothing) ->
-            (Std_.pure (CounterFactory Message.nullClient))
-        (Std_.Just cap) ->
-            (CounterFactory <$> (Untyped.getClient cap))
-instance (Classes.Cerialize CounterFactory) where
-    cerialize msg (CounterFactory client) = (Capnp.Gen.ById.X832bcc6686a26d56.CounterFactory'newtype_ <$> (Std_.Just <$> (Untyped.appendCap msg client)))
-instance (Server.Server Std_.IO CounterFactory)
-instance (CounterFactory'server_ Std_.IO CounterFactory) where
-    counterFactory'newCounter (CounterFactory client) = (Rpc.clientMethodHandler 15610220054254702620 0 client)
-data CounterFactory'newCounter'params 
-    = CounterFactory'newCounter'params 
-        {start :: Std_.Word32}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default CounterFactory'newCounter'params) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg CounterFactory'newCounter'params) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize CounterFactory'newCounter'params) where
-    type Cerial msg CounterFactory'newCounter'params = (Capnp.Gen.ById.X832bcc6686a26d56.CounterFactory'newCounter'params msg)
-    decerialize raw = (CounterFactory'newCounter'params <$> (Capnp.Gen.ById.X832bcc6686a26d56.get_CounterFactory'newCounter'params'start raw))
-instance (Classes.Marshal CounterFactory'newCounter'params) where
-    marshalInto raw_ value_ = case value_ of
-        CounterFactory'newCounter'params{..} ->
-            (do
-                (Capnp.Gen.ById.X832bcc6686a26d56.set_CounterFactory'newCounter'params'start raw_ start)
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize CounterFactory'newCounter'params)
-instance (Classes.Cerialize (V.Vector CounterFactory'newCounter'params)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector CounterFactory'newCounter'params))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector CounterFactory'newCounter'params)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector CounterFactory'newCounter'params))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CounterFactory'newCounter'params)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CounterFactory'newCounter'params))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CounterFactory'newCounter'params)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data CounterFactory'newCounter'results 
-    = CounterFactory'newCounter'results 
-        {counter :: CallSequence}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default CounterFactory'newCounter'results) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg CounterFactory'newCounter'results) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize CounterFactory'newCounter'results) where
-    type Cerial msg CounterFactory'newCounter'results = (Capnp.Gen.ById.X832bcc6686a26d56.CounterFactory'newCounter'results msg)
-    decerialize raw = (CounterFactory'newCounter'results <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_CounterFactory'newCounter'results'counter raw) >>= Classes.decerialize))
-instance (Classes.Marshal CounterFactory'newCounter'results) where
-    marshalInto raw_ value_ = case value_ of
-        CounterFactory'newCounter'results{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) counter) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_CounterFactory'newCounter'results'counter raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize CounterFactory'newCounter'results)
-instance (Classes.Cerialize (V.Vector CounterFactory'newCounter'results)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector CounterFactory'newCounter'results))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector CounterFactory'newCounter'results)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector CounterFactory'newCounter'results))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CounterFactory'newCounter'results)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CounterFactory'newCounter'results))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CounterFactory'newCounter'results)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-newtype CounterAcceptor 
-    = CounterAcceptor Message.Client
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-class ((MonadIO.MonadIO m)
-      ,(Server.Server m cap)) => (CounterAcceptor'server_ m cap) where
-    {-# MINIMAL counterAcceptor'accept #-}
-    counterAcceptor'accept :: cap -> (Server.MethodHandler m CounterAcceptor'accept'params CounterAcceptor'accept'results)
-    counterAcceptor'accept _ = Server.methodUnimplemented
-export_CounterAcceptor :: ((CounterAcceptor'server_ Std_.IO a)
-                          ,(STM.MonadSTM m)) => Supervisors.Supervisor -> a -> (m CounterAcceptor)
-export_CounterAcceptor sup_ server_ = (STM.liftSTM (CounterAcceptor <$> (Rpc.export sup_ Server.ServerOps{handleCast = (Server.unwrap server_)
-                                                                                                         ,handleStop = (Server.shutdown server_)
-                                                                                                         ,handleCall = (\interfaceId_ methodId_ -> case interfaceId_ of
-                                                                                                             14317498215560924065 ->
-                                                                                                                 case methodId_ of
-                                                                                                                     0 ->
-                                                                                                                         (Server.toUntypedHandler (counterAcceptor'accept server_))
-                                                                                                                     _ ->
-                                                                                                                         Server.methodUnimplemented
-                                                                                                             _ ->
-                                                                                                                 Server.methodUnimplemented)})))
-instance (Rpc.IsClient CounterAcceptor) where
-    fromClient  = CounterAcceptor
-    toClient (CounterAcceptor client) = client
-instance (Classes.FromPtr msg CounterAcceptor) where
-    fromPtr  = RpcHelpers.isClientFromPtr
-instance (Classes.ToPtr s CounterAcceptor) where
-    toPtr  = RpcHelpers.isClientToPtr
-instance (Classes.Decerialize CounterAcceptor) where
-    type Cerial msg CounterAcceptor = (Capnp.Gen.ById.X832bcc6686a26d56.CounterAcceptor msg)
-    decerialize (Capnp.Gen.ById.X832bcc6686a26d56.CounterAcceptor'newtype_ maybeCap) = case maybeCap of
-        (Std_.Nothing) ->
-            (Std_.pure (CounterAcceptor Message.nullClient))
-        (Std_.Just cap) ->
-            (CounterAcceptor <$> (Untyped.getClient cap))
-instance (Classes.Cerialize CounterAcceptor) where
-    cerialize msg (CounterAcceptor client) = (Capnp.Gen.ById.X832bcc6686a26d56.CounterAcceptor'newtype_ <$> (Std_.Just <$> (Untyped.appendCap msg client)))
-instance (Server.Server Std_.IO CounterAcceptor)
-instance (CounterAcceptor'server_ Std_.IO CounterAcceptor) where
-    counterAcceptor'accept (CounterAcceptor client) = (Rpc.clientMethodHandler 14317498215560924065 0 client)
-data CounterAcceptor'accept'params 
-    = CounterAcceptor'accept'params 
-        {counter :: CallSequence}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default CounterAcceptor'accept'params) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg CounterAcceptor'accept'params) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize CounterAcceptor'accept'params) where
-    type Cerial msg CounterAcceptor'accept'params = (Capnp.Gen.ById.X832bcc6686a26d56.CounterAcceptor'accept'params msg)
-    decerialize raw = (CounterAcceptor'accept'params <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_CounterAcceptor'accept'params'counter raw) >>= Classes.decerialize))
-instance (Classes.Marshal CounterAcceptor'accept'params) where
-    marshalInto raw_ value_ = case value_ of
-        CounterAcceptor'accept'params{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) counter) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_CounterAcceptor'accept'params'counter raw_))
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize CounterAcceptor'accept'params)
-instance (Classes.Cerialize (V.Vector CounterAcceptor'accept'params)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector CounterAcceptor'accept'params))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector CounterAcceptor'accept'params)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector CounterAcceptor'accept'params))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CounterAcceptor'accept'params)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CounterAcceptor'accept'params))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CounterAcceptor'accept'params)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data CounterAcceptor'accept'results 
-    = CounterAcceptor'accept'results 
-        {}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default CounterAcceptor'accept'results) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg CounterAcceptor'accept'results) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize CounterAcceptor'accept'results) where
-    type Cerial msg CounterAcceptor'accept'results = (Capnp.Gen.ById.X832bcc6686a26d56.CounterAcceptor'accept'results msg)
-    decerialize raw = (Std_.pure CounterAcceptor'accept'results)
-instance (Classes.Marshal CounterAcceptor'accept'results) where
-    marshalInto raw_ value_ = case value_ of
-        (CounterAcceptor'accept'results) ->
-            (do
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize CounterAcceptor'accept'results)
-instance (Classes.Cerialize (V.Vector CounterAcceptor'accept'results)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector CounterAcceptor'accept'results))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector CounterAcceptor'accept'results)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector CounterAcceptor'accept'results))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CounterAcceptor'accept'results)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CounterAcceptor'accept'results))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector CounterAcceptor'accept'results)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-newtype Top 
-    = Top Message.Client
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-class ((MonadIO.MonadIO m)
-      ,(Server.Server m cap)) => (Top'server_ m cap) where
-    {-# MINIMAL top'top #-}
-    top'top :: cap -> (Server.MethodHandler m Top'top'params Top'top'results)
-    top'top _ = Server.methodUnimplemented
-export_Top :: ((Top'server_ Std_.IO a)
-              ,(STM.MonadSTM m)) => Supervisors.Supervisor -> a -> (m Top)
-export_Top sup_ server_ = (STM.liftSTM (Top <$> (Rpc.export sup_ Server.ServerOps{handleCast = (Server.unwrap server_)
-                                                                                 ,handleStop = (Server.shutdown server_)
-                                                                                 ,handleCall = (\interfaceId_ methodId_ -> case interfaceId_ of
-                                                                                     17861645508359101525 ->
-                                                                                         case methodId_ of
-                                                                                             0 ->
-                                                                                                 (Server.toUntypedHandler (top'top server_))
-                                                                                             _ ->
-                                                                                                 Server.methodUnimplemented
-                                                                                     _ ->
-                                                                                         Server.methodUnimplemented)})))
-instance (Rpc.IsClient Top) where
-    fromClient  = Top
-    toClient (Top client) = client
-instance (Classes.FromPtr msg Top) where
-    fromPtr  = RpcHelpers.isClientFromPtr
-instance (Classes.ToPtr s Top) where
-    toPtr  = RpcHelpers.isClientToPtr
-instance (Classes.Decerialize Top) where
-    type Cerial msg Top = (Capnp.Gen.ById.X832bcc6686a26d56.Top msg)
-    decerialize (Capnp.Gen.ById.X832bcc6686a26d56.Top'newtype_ maybeCap) = case maybeCap of
-        (Std_.Nothing) ->
-            (Std_.pure (Top Message.nullClient))
-        (Std_.Just cap) ->
-            (Top <$> (Untyped.getClient cap))
-instance (Classes.Cerialize Top) where
-    cerialize msg (Top client) = (Capnp.Gen.ById.X832bcc6686a26d56.Top'newtype_ <$> (Std_.Just <$> (Untyped.appendCap msg client)))
-instance (Server.Server Std_.IO Top)
-instance (Top'server_ Std_.IO Top) where
-    top'top (Top client) = (Rpc.clientMethodHandler 17861645508359101525 0 client)
-data Top'top'params 
-    = Top'top'params 
-        {}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default Top'top'params) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Top'top'params) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Top'top'params) where
-    type Cerial msg Top'top'params = (Capnp.Gen.ById.X832bcc6686a26d56.Top'top'params msg)
-    decerialize raw = (Std_.pure Top'top'params)
-instance (Classes.Marshal Top'top'params) where
-    marshalInto raw_ value_ = case value_ of
-        (Top'top'params) ->
-            (do
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize Top'top'params)
-instance (Classes.Cerialize (V.Vector Top'top'params)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Top'top'params))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Top'top'params)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Top'top'params))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Top'top'params)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Top'top'params))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Top'top'params)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data Top'top'results 
-    = Top'top'results 
-        {}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default Top'top'results) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Top'top'results) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Top'top'results) where
-    type Cerial msg Top'top'results = (Capnp.Gen.ById.X832bcc6686a26d56.Top'top'results msg)
-    decerialize raw = (Std_.pure Top'top'results)
-instance (Classes.Marshal Top'top'results) where
-    marshalInto raw_ value_ = case value_ of
-        (Top'top'results) ->
-            (do
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize Top'top'results)
-instance (Classes.Cerialize (V.Vector Top'top'results)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Top'top'results))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Top'top'results)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Top'top'results))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Top'top'results)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Top'top'results))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Top'top'results)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-newtype Left 
-    = Left Message.Client
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-class ((MonadIO.MonadIO m)
-      ,(Top'server_ m cap)) => (Left'server_ m cap) where
-    {-# MINIMAL left'left #-}
-    left'left :: cap -> (Server.MethodHandler m Left'left'params Left'left'results)
-    left'left _ = Server.methodUnimplemented
-export_Left :: ((Left'server_ Std_.IO a)
-               ,(STM.MonadSTM m)) => Supervisors.Supervisor -> a -> (m Left)
-export_Left sup_ server_ = (STM.liftSTM (Left <$> (Rpc.export sup_ Server.ServerOps{handleCast = (Server.unwrap server_)
-                                                                                   ,handleStop = (Server.shutdown server_)
-                                                                                   ,handleCall = (\interfaceId_ methodId_ -> case interfaceId_ of
-                                                                                       17679152961798450446 ->
-                                                                                           case methodId_ of
-                                                                                               0 ->
-                                                                                                   (Server.toUntypedHandler (left'left server_))
-                                                                                               _ ->
-                                                                                                   Server.methodUnimplemented
-                                                                                       17861645508359101525 ->
-                                                                                           case methodId_ of
-                                                                                               0 ->
-                                                                                                   (Server.toUntypedHandler (top'top server_))
-                                                                                               _ ->
-                                                                                                   Server.methodUnimplemented
-                                                                                       _ ->
-                                                                                           Server.methodUnimplemented)})))
-instance (Rpc.IsClient Left) where
-    fromClient  = Left
-    toClient (Left client) = client
-instance (Classes.FromPtr msg Left) where
-    fromPtr  = RpcHelpers.isClientFromPtr
-instance (Classes.ToPtr s Left) where
-    toPtr  = RpcHelpers.isClientToPtr
-instance (Classes.Decerialize Left) where
-    type Cerial msg Left = (Capnp.Gen.ById.X832bcc6686a26d56.Left msg)
-    decerialize (Capnp.Gen.ById.X832bcc6686a26d56.Left'newtype_ maybeCap) = case maybeCap of
-        (Std_.Nothing) ->
-            (Std_.pure (Left Message.nullClient))
-        (Std_.Just cap) ->
-            (Left <$> (Untyped.getClient cap))
-instance (Classes.Cerialize Left) where
-    cerialize msg (Left client) = (Capnp.Gen.ById.X832bcc6686a26d56.Left'newtype_ <$> (Std_.Just <$> (Untyped.appendCap msg client)))
-instance (Server.Server Std_.IO Left)
-instance (Left'server_ Std_.IO Left) where
-    left'left (Left client) = (Rpc.clientMethodHandler 17679152961798450446 0 client)
-instance (Top'server_ Std_.IO Left) where
-    top'top (Left client) = (Rpc.clientMethodHandler 17861645508359101525 0 client)
-data Left'left'params 
-    = Left'left'params 
-        {}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default Left'left'params) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Left'left'params) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Left'left'params) where
-    type Cerial msg Left'left'params = (Capnp.Gen.ById.X832bcc6686a26d56.Left'left'params msg)
-    decerialize raw = (Std_.pure Left'left'params)
-instance (Classes.Marshal Left'left'params) where
-    marshalInto raw_ value_ = case value_ of
-        (Left'left'params) ->
-            (do
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize Left'left'params)
-instance (Classes.Cerialize (V.Vector Left'left'params)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Left'left'params))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Left'left'params)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Left'left'params))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Left'left'params)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Left'left'params))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Left'left'params)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data Left'left'results 
-    = Left'left'results 
-        {}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default Left'left'results) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Left'left'results) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Left'left'results) where
-    type Cerial msg Left'left'results = (Capnp.Gen.ById.X832bcc6686a26d56.Left'left'results msg)
-    decerialize raw = (Std_.pure Left'left'results)
-instance (Classes.Marshal Left'left'results) where
-    marshalInto raw_ value_ = case value_ of
-        (Left'left'results) ->
-            (do
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize Left'left'results)
-instance (Classes.Cerialize (V.Vector Left'left'results)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Left'left'results))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Left'left'results)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Left'left'results))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Left'left'results)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Left'left'results))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Left'left'results)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-newtype Right 
-    = Right Message.Client
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-class ((MonadIO.MonadIO m)
-      ,(Top'server_ m cap)) => (Right'server_ m cap) where
-    {-# MINIMAL right'right #-}
-    right'right :: cap -> (Server.MethodHandler m Right'right'params Right'right'results)
-    right'right _ = Server.methodUnimplemented
-export_Right :: ((Right'server_ Std_.IO a)
-                ,(STM.MonadSTM m)) => Supervisors.Supervisor -> a -> (m Right)
-export_Right sup_ server_ = (STM.liftSTM (Right <$> (Rpc.export sup_ Server.ServerOps{handleCast = (Server.unwrap server_)
-                                                                                     ,handleStop = (Server.shutdown server_)
-                                                                                     ,handleCall = (\interfaceId_ methodId_ -> case interfaceId_ of
-                                                                                         14712639595305348988 ->
-                                                                                             case methodId_ of
-                                                                                                 0 ->
-                                                                                                     (Server.toUntypedHandler (right'right server_))
-                                                                                                 _ ->
-                                                                                                     Server.methodUnimplemented
-                                                                                         17861645508359101525 ->
-                                                                                             case methodId_ of
-                                                                                                 0 ->
-                                                                                                     (Server.toUntypedHandler (top'top server_))
-                                                                                                 _ ->
-                                                                                                     Server.methodUnimplemented
-                                                                                         _ ->
-                                                                                             Server.methodUnimplemented)})))
-instance (Rpc.IsClient Right) where
-    fromClient  = Right
-    toClient (Right client) = client
-instance (Classes.FromPtr msg Right) where
-    fromPtr  = RpcHelpers.isClientFromPtr
-instance (Classes.ToPtr s Right) where
-    toPtr  = RpcHelpers.isClientToPtr
-instance (Classes.Decerialize Right) where
-    type Cerial msg Right = (Capnp.Gen.ById.X832bcc6686a26d56.Right msg)
-    decerialize (Capnp.Gen.ById.X832bcc6686a26d56.Right'newtype_ maybeCap) = case maybeCap of
-        (Std_.Nothing) ->
-            (Std_.pure (Right Message.nullClient))
-        (Std_.Just cap) ->
-            (Right <$> (Untyped.getClient cap))
-instance (Classes.Cerialize Right) where
-    cerialize msg (Right client) = (Capnp.Gen.ById.X832bcc6686a26d56.Right'newtype_ <$> (Std_.Just <$> (Untyped.appendCap msg client)))
-instance (Server.Server Std_.IO Right)
-instance (Right'server_ Std_.IO Right) where
-    right'right (Right client) = (Rpc.clientMethodHandler 14712639595305348988 0 client)
-instance (Top'server_ Std_.IO Right) where
-    top'top (Right client) = (Rpc.clientMethodHandler 17861645508359101525 0 client)
-data Right'right'params 
-    = Right'right'params 
-        {}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default Right'right'params) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Right'right'params) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Right'right'params) where
-    type Cerial msg Right'right'params = (Capnp.Gen.ById.X832bcc6686a26d56.Right'right'params msg)
-    decerialize raw = (Std_.pure Right'right'params)
-instance (Classes.Marshal Right'right'params) where
-    marshalInto raw_ value_ = case value_ of
-        (Right'right'params) ->
-            (do
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize Right'right'params)
-instance (Classes.Cerialize (V.Vector Right'right'params)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Right'right'params))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Right'right'params)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Right'right'params))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Right'right'params)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Right'right'params))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Right'right'params)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data Right'right'results 
-    = Right'right'results 
-        {}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default Right'right'results) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Right'right'results) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Right'right'results) where
-    type Cerial msg Right'right'results = (Capnp.Gen.ById.X832bcc6686a26d56.Right'right'results msg)
-    decerialize raw = (Std_.pure Right'right'results)
-instance (Classes.Marshal Right'right'results) where
-    marshalInto raw_ value_ = case value_ of
-        (Right'right'results) ->
-            (do
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize Right'right'results)
-instance (Classes.Cerialize (V.Vector Right'right'results)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Right'right'results))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Right'right'results)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Right'right'results))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Right'right'results)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Right'right'results))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Right'right'results)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-newtype Bottom 
-    = Bottom Message.Client
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-class ((MonadIO.MonadIO m)
-      ,(Left'server_ m cap)
-      ,(Right'server_ m cap)) => (Bottom'server_ m cap) where
-    {-# MINIMAL bottom'bottom #-}
-    bottom'bottom :: cap -> (Server.MethodHandler m Bottom'bottom'params Bottom'bottom'results)
-    bottom'bottom _ = Server.methodUnimplemented
-export_Bottom :: ((Bottom'server_ Std_.IO a)
-                 ,(STM.MonadSTM m)) => Supervisors.Supervisor -> a -> (m Bottom)
-export_Bottom sup_ server_ = (STM.liftSTM (Bottom <$> (Rpc.export sup_ Server.ServerOps{handleCast = (Server.unwrap server_)
-                                                                                       ,handleStop = (Server.shutdown server_)
-                                                                                       ,handleCall = (\interfaceId_ methodId_ -> case interfaceId_ of
-                                                                                           18402872613340521775 ->
-                                                                                               case methodId_ of
-                                                                                                   0 ->
-                                                                                                       (Server.toUntypedHandler (bottom'bottom server_))
-                                                                                                   _ ->
-                                                                                                       Server.methodUnimplemented
-                                                                                           14712639595305348988 ->
-                                                                                               case methodId_ of
-                                                                                                   0 ->
-                                                                                                       (Server.toUntypedHandler (right'right server_))
-                                                                                                   _ ->
-                                                                                                       Server.methodUnimplemented
-                                                                                           17679152961798450446 ->
-                                                                                               case methodId_ of
-                                                                                                   0 ->
-                                                                                                       (Server.toUntypedHandler (left'left server_))
-                                                                                                   _ ->
-                                                                                                       Server.methodUnimplemented
-                                                                                           17861645508359101525 ->
-                                                                                               case methodId_ of
-                                                                                                   0 ->
-                                                                                                       (Server.toUntypedHandler (top'top server_))
-                                                                                                   _ ->
-                                                                                                       Server.methodUnimplemented
-                                                                                           _ ->
-                                                                                               Server.methodUnimplemented)})))
-instance (Rpc.IsClient Bottom) where
-    fromClient  = Bottom
-    toClient (Bottom client) = client
-instance (Classes.FromPtr msg Bottom) where
-    fromPtr  = RpcHelpers.isClientFromPtr
-instance (Classes.ToPtr s Bottom) where
-    toPtr  = RpcHelpers.isClientToPtr
-instance (Classes.Decerialize Bottom) where
-    type Cerial msg Bottom = (Capnp.Gen.ById.X832bcc6686a26d56.Bottom msg)
-    decerialize (Capnp.Gen.ById.X832bcc6686a26d56.Bottom'newtype_ maybeCap) = case maybeCap of
-        (Std_.Nothing) ->
-            (Std_.pure (Bottom Message.nullClient))
-        (Std_.Just cap) ->
-            (Bottom <$> (Untyped.getClient cap))
-instance (Classes.Cerialize Bottom) where
-    cerialize msg (Bottom client) = (Capnp.Gen.ById.X832bcc6686a26d56.Bottom'newtype_ <$> (Std_.Just <$> (Untyped.appendCap msg client)))
-instance (Server.Server Std_.IO Bottom)
-instance (Bottom'server_ Std_.IO Bottom) where
-    bottom'bottom (Bottom client) = (Rpc.clientMethodHandler 18402872613340521775 0 client)
-instance (Right'server_ Std_.IO Bottom) where
-    right'right (Bottom client) = (Rpc.clientMethodHandler 14712639595305348988 0 client)
-instance (Left'server_ Std_.IO Bottom) where
-    left'left (Bottom client) = (Rpc.clientMethodHandler 17679152961798450446 0 client)
-instance (Top'server_ Std_.IO Bottom) where
-    top'top (Bottom client) = (Rpc.clientMethodHandler 17861645508359101525 0 client)
-data Bottom'bottom'params 
-    = Bottom'bottom'params 
-        {}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default Bottom'bottom'params) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Bottom'bottom'params) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Bottom'bottom'params) where
-    type Cerial msg Bottom'bottom'params = (Capnp.Gen.ById.X832bcc6686a26d56.Bottom'bottom'params msg)
-    decerialize raw = (Std_.pure Bottom'bottom'params)
-instance (Classes.Marshal Bottom'bottom'params) where
-    marshalInto raw_ value_ = case value_ of
-        (Bottom'bottom'params) ->
-            (do
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize Bottom'bottom'params)
-instance (Classes.Cerialize (V.Vector Bottom'bottom'params)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Bottom'bottom'params))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Bottom'bottom'params)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Bottom'bottom'params))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Bottom'bottom'params)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Bottom'bottom'params))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Bottom'bottom'params)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data Bottom'bottom'results 
-    = Bottom'bottom'results 
-        {}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default Bottom'bottom'results) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Bottom'bottom'results) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Bottom'bottom'results) where
-    type Cerial msg Bottom'bottom'results = (Capnp.Gen.ById.X832bcc6686a26d56.Bottom'bottom'results msg)
-    decerialize raw = (Std_.pure Bottom'bottom'results)
-instance (Classes.Marshal Bottom'bottom'results) where
-    marshalInto raw_ value_ = case value_ of
-        (Bottom'bottom'results) ->
-            (do
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize Bottom'bottom'results)
-instance (Classes.Cerialize (V.Vector Bottom'bottom'results)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Bottom'bottom'results))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Bottom'bottom'results)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Bottom'bottom'results))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Bottom'bottom'results)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Bottom'bottom'results))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Bottom'bottom'results)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data Defaults 
-    = Defaults 
-        {text :: T.Text
-        ,data_ :: BS.ByteString
-        ,float :: Std_.Float
-        ,int :: Std_.Int32
-        ,uint :: Std_.Word32}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default Defaults) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg Defaults) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize Defaults) where
-    type Cerial msg Defaults = (Capnp.Gen.ById.X832bcc6686a26d56.Defaults msg)
-    decerialize raw = (Defaults <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Defaults'text raw) >>= Classes.decerialize)
-                                <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Defaults'data_ raw) >>= Classes.decerialize)
-                                <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_Defaults'float raw)
-                                <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_Defaults'int raw)
-                                <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_Defaults'uint raw))
-instance (Classes.Marshal Defaults) where
-    marshalInto raw_ value_ = case value_ of
-        Defaults{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) text) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Defaults'text raw_))
-                ((Classes.cerialize (Untyped.message raw_) data_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Defaults'data_ raw_))
-                (Capnp.Gen.ById.X832bcc6686a26d56.set_Defaults'float raw_ float)
-                (Capnp.Gen.ById.X832bcc6686a26d56.set_Defaults'int raw_ int)
-                (Capnp.Gen.ById.X832bcc6686a26d56.set_Defaults'uint raw_ uint)
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize Defaults)
-instance (Classes.Cerialize (V.Vector Defaults)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector Defaults))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Defaults)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Defaults))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Defaults)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Defaults))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Defaults)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-data BenchmarkA 
-    = BenchmarkA 
-        {name :: T.Text
-        ,birthDay :: Std_.Int64
-        ,phone :: T.Text
-        ,siblings :: Std_.Int32
-        ,spouse :: Std_.Bool
-        ,money :: Std_.Double}
-    deriving(Std_.Show
-            ,Std_.Eq
-            ,Generics.Generic)
-instance (Default.Default BenchmarkA) where
-    def  = GenHelpersPure.defaultStruct
-instance (Classes.FromStruct Message.ConstMsg BenchmarkA) where
-    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
-instance (Classes.Decerialize BenchmarkA) where
-    type Cerial msg BenchmarkA = (Capnp.Gen.ById.X832bcc6686a26d56.BenchmarkA msg)
-    decerialize raw = (BenchmarkA <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_BenchmarkA'name raw) >>= Classes.decerialize)
-                                  <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_BenchmarkA'birthDay raw)
-                                  <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_BenchmarkA'phone raw) >>= Classes.decerialize)
-                                  <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_BenchmarkA'siblings raw)
-                                  <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_BenchmarkA'spouse raw)
-                                  <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_BenchmarkA'money raw))
-instance (Classes.Marshal BenchmarkA) where
-    marshalInto raw_ value_ = case value_ of
-        BenchmarkA{..} ->
-            (do
-                ((Classes.cerialize (Untyped.message raw_) name) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_BenchmarkA'name raw_))
-                (Capnp.Gen.ById.X832bcc6686a26d56.set_BenchmarkA'birthDay raw_ birthDay)
-                ((Classes.cerialize (Untyped.message raw_) phone) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_BenchmarkA'phone raw_))
-                (Capnp.Gen.ById.X832bcc6686a26d56.set_BenchmarkA'siblings raw_ siblings)
-                (Capnp.Gen.ById.X832bcc6686a26d56.set_BenchmarkA'spouse raw_ spouse)
-                (Capnp.Gen.ById.X832bcc6686a26d56.set_BenchmarkA'money raw_ money)
-                (Std_.pure ())
-                )
-instance (Classes.Cerialize BenchmarkA)
-instance (Classes.Cerialize (V.Vector BenchmarkA)) where
-    cerialize  = GenHelpersPure.cerializeCompositeVec
-instance (Classes.Cerialize (V.Vector (V.Vector BenchmarkA))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector BenchmarkA)))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector BenchmarkA))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector BenchmarkA)))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector BenchmarkA))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector BenchmarkA)))))))) where
-    cerialize  = GenHelpersPure.cerializeBasicVec
-instance (Classes.Decerialize Capnp.Gen.ById.X832bcc6686a26d56.Airport) where
-    type Cerial msg Capnp.Gen.ById.X832bcc6686a26d56.Airport = Capnp.Gen.ById.X832bcc6686a26d56.Airport
-    decerialize  = Std_.pure
-instance (Classes.Cerialize Capnp.Gen.ById.X832bcc6686a26d56.Airport) where
-    cerialize _ = Std_.pure
-instance (Classes.Cerialize (V.Vector Capnp.Gen.ById.X832bcc6686a26d56.Airport)) where
-    cerialize  = Classes.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector Capnp.Gen.ById.X832bcc6686a26d56.Airport))) where
-    cerialize  = Classes.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.X832bcc6686a26d56.Airport)))) where
-    cerialize  = Classes.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.X832bcc6686a26d56.Airport))))) where
-    cerialize  = Classes.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.X832bcc6686a26d56.Airport)))))) where
-    cerialize  = Classes.cerializeBasicVec
-instance (Classes.Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.X832bcc6686a26d56.Airport))))))) where
+{-# LANGUAGE FunctionalDependencies #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE UndecidableInstances #-}
+{-# OPTIONS_GHC -Wno-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports #-}
+{-# OPTIONS_GHC -Wno-unused-matches #-}
+{-# OPTIONS_GHC -Wno-orphans #-}
+module Capnp.Gen.Aircraft.Pure(Capnp.Gen.ById.X832bcc6686a26d56.Airport(..)
+                              ,constDate
+                              ,constList
+                              ,Capnp.Gen.ById.X832bcc6686a26d56.constEnum
+                              ,Zdate(..)
+                              ,Zdata(..)
+                              ,PlaneBase(..)
+                              ,B737(..)
+                              ,A320(..)
+                              ,F16(..)
+                              ,Regression(..)
+                              ,Aircraft(..)
+                              ,Z(..)
+                              ,Z'grp(..)
+                              ,Counter(..)
+                              ,Bag(..)
+                              ,Zserver(..)
+                              ,Zjob(..)
+                              ,VerEmpty(..)
+                              ,VerOneData(..)
+                              ,VerTwoData(..)
+                              ,VerOnePtr(..)
+                              ,VerTwoPtr(..)
+                              ,VerTwoDataTwoPtr(..)
+                              ,HoldsVerEmptyList(..)
+                              ,HoldsVerOneDataList(..)
+                              ,HoldsVerTwoDataList(..)
+                              ,HoldsVerOnePtrList(..)
+                              ,HoldsVerTwoPtrList(..)
+                              ,HoldsVerTwoTwoList(..)
+                              ,HoldsVerTwoTwoPlus(..)
+                              ,VerTwoTwoPlus(..)
+                              ,HoldsText(..)
+                              ,WrapEmpty(..)
+                              ,Wrap2x2(..)
+                              ,Wrap2x2plus(..)
+                              ,VoidUnion(..)
+                              ,Nester1Capn(..)
+                              ,RWTestCapn(..)
+                              ,ListStructCapn(..)
+                              ,Echo(..)
+                              ,Echo'server_(..)
+                              ,export_Echo
+                              ,Echo'echo'params(..)
+                              ,Echo'echo'results(..)
+                              ,Hoth(..)
+                              ,EchoBase(..)
+                              ,EchoBases(..)
+                              ,StackingRoot(..)
+                              ,StackingA(..)
+                              ,StackingB(..)
+                              ,CallSequence(..)
+                              ,CallSequence'server_(..)
+                              ,export_CallSequence
+                              ,CallSequence'getNumber'params(..)
+                              ,CallSequence'getNumber'results(..)
+                              ,CounterFactory(..)
+                              ,CounterFactory'server_(..)
+                              ,export_CounterFactory
+                              ,CounterFactory'newCounter'params(..)
+                              ,CounterFactory'newCounter'results(..)
+                              ,CounterAcceptor(..)
+                              ,CounterAcceptor'server_(..)
+                              ,export_CounterAcceptor
+                              ,CounterAcceptor'accept'params(..)
+                              ,CounterAcceptor'accept'results(..)
+                              ,Top(..)
+                              ,Top'server_(..)
+                              ,export_Top
+                              ,Top'top'params(..)
+                              ,Top'top'results(..)
+                              ,Left(..)
+                              ,Left'server_(..)
+                              ,export_Left
+                              ,Left'left'params(..)
+                              ,Left'left'results(..)
+                              ,Right(..)
+                              ,Right'server_(..)
+                              ,export_Right
+                              ,Right'right'params(..)
+                              ,Right'right'results(..)
+                              ,Bottom(..)
+                              ,Bottom'server_(..)
+                              ,export_Bottom
+                              ,Bottom'bottom'params(..)
+                              ,Bottom'bottom'results(..)
+                              ,Defaults(..)
+                              ,BenchmarkA(..)) where
+import qualified Capnp.GenHelpers.ReExports.Data.Vector as V
+import qualified Capnp.GenHelpers.ReExports.Data.Text as T
+import qualified Capnp.GenHelpers.ReExports.Data.ByteString as BS
+import qualified Capnp.GenHelpers.ReExports.Data.Default as Default
+import qualified GHC.Generics as Generics
+import qualified Control.Monad.IO.Class as MonadIO
+import qualified Capnp.Untyped.Pure as UntypedPure
+import qualified Capnp.Untyped as Untyped
+import qualified Capnp.Message as Message
+import qualified Capnp.Classes as Classes
+import qualified Capnp.Basics.Pure as BasicsPure
+import qualified Capnp.GenHelpers.Pure as GenHelpersPure
+import qualified Capnp.Rpc.Untyped as Rpc
+import qualified Capnp.Rpc.Server as Server
+import qualified Capnp.GenHelpers.Rpc as RpcHelpers
+import qualified Capnp.GenHelpers.ReExports.Control.Concurrent.STM as STM
+import qualified Capnp.GenHelpers.ReExports.Control.Monad.STM.Class as STM
+import qualified Capnp.GenHelpers.ReExports.Supervisors as Supervisors
+import qualified Capnp.Gen.ById.X832bcc6686a26d56
+import qualified Prelude as Std_
+import qualified Data.Word as Std_
+import qualified Data.Int as Std_
+import Prelude ((<$>), (<*>), (>>=))
+constDate :: Zdate
+constDate  = (GenHelpersPure.toPurePtrConst Capnp.Gen.ById.X832bcc6686a26d56.constDate)
+constList :: (V.Vector Zdate)
+constList  = (GenHelpersPure.toPurePtrConst Capnp.Gen.ById.X832bcc6686a26d56.constList)
+data Zdate 
+    = Zdate 
+        {year :: Std_.Int16
+        ,month :: Std_.Word8
+        ,day :: Std_.Word8}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (Zdate)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (Zdate)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (Zdate)) where
+    type Cerial msg (Zdate) = (Capnp.Gen.ById.X832bcc6686a26d56.Zdate msg)
+    decerialize raw = (Zdate <$> (Capnp.Gen.ById.X832bcc6686a26d56.get_Zdate'year raw)
+                             <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_Zdate'month raw)
+                             <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_Zdate'day raw))
+instance (Classes.Marshal s (Zdate)) where
+    marshalInto raw_ value_ = case value_ of
+        Zdate{..} ->
+            (do
+                (Capnp.Gen.ById.X832bcc6686a26d56.set_Zdate'year raw_ year)
+                (Capnp.Gen.ById.X832bcc6686a26d56.set_Zdate'month raw_ month)
+                (Capnp.Gen.ById.X832bcc6686a26d56.set_Zdate'day raw_ day)
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (Zdate))
+instance (Classes.Cerialize s (V.Vector (Zdate))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (Zdate)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Zdate))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Zdate)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Zdate))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Zdate)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Zdate))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data Zdata 
+    = Zdata 
+        {data_ :: BS.ByteString}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (Zdata)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (Zdata)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (Zdata)) where
+    type Cerial msg (Zdata) = (Capnp.Gen.ById.X832bcc6686a26d56.Zdata msg)
+    decerialize raw = (Zdata <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Zdata'data_ raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (Zdata)) where
+    marshalInto raw_ value_ = case value_ of
+        Zdata{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) data_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Zdata'data_ raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (Zdata))
+instance (Classes.Cerialize s (V.Vector (Zdata))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (Zdata)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Zdata))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Zdata)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Zdata))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Zdata)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Zdata))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data PlaneBase 
+    = PlaneBase 
+        {name :: T.Text
+        ,homes :: (V.Vector Capnp.Gen.ById.X832bcc6686a26d56.Airport)
+        ,rating :: Std_.Int64
+        ,canFly :: Std_.Bool
+        ,capacity :: Std_.Int64
+        ,maxSpeed :: Std_.Double}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (PlaneBase)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (PlaneBase)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (PlaneBase)) where
+    type Cerial msg (PlaneBase) = (Capnp.Gen.ById.X832bcc6686a26d56.PlaneBase msg)
+    decerialize raw = (PlaneBase <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_PlaneBase'name raw) >>= Classes.decerialize)
+                                 <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_PlaneBase'homes raw) >>= Classes.decerialize)
+                                 <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_PlaneBase'rating raw)
+                                 <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_PlaneBase'canFly raw)
+                                 <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_PlaneBase'capacity raw)
+                                 <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_PlaneBase'maxSpeed raw))
+instance (Classes.Marshal s (PlaneBase)) where
+    marshalInto raw_ value_ = case value_ of
+        PlaneBase{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) name) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_PlaneBase'name raw_))
+                ((Classes.cerialize (Untyped.message raw_) homes) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_PlaneBase'homes raw_))
+                (Capnp.Gen.ById.X832bcc6686a26d56.set_PlaneBase'rating raw_ rating)
+                (Capnp.Gen.ById.X832bcc6686a26d56.set_PlaneBase'canFly raw_ canFly)
+                (Capnp.Gen.ById.X832bcc6686a26d56.set_PlaneBase'capacity raw_ capacity)
+                (Capnp.Gen.ById.X832bcc6686a26d56.set_PlaneBase'maxSpeed raw_ maxSpeed)
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (PlaneBase))
+instance (Classes.Cerialize s (V.Vector (PlaneBase))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (PlaneBase)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (PlaneBase))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (PlaneBase)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (PlaneBase))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (PlaneBase)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (PlaneBase))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data B737 
+    = B737 
+        {base :: PlaneBase}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (B737)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (B737)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (B737)) where
+    type Cerial msg (B737) = (Capnp.Gen.ById.X832bcc6686a26d56.B737 msg)
+    decerialize raw = (B737 <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_B737'base raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (B737)) where
+    marshalInto raw_ value_ = case value_ of
+        B737{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) base) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_B737'base raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (B737))
+instance (Classes.Cerialize s (V.Vector (B737))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (B737)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (B737))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (B737)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (B737))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (B737)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (B737))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data A320 
+    = A320 
+        {base :: PlaneBase}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (A320)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (A320)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (A320)) where
+    type Cerial msg (A320) = (Capnp.Gen.ById.X832bcc6686a26d56.A320 msg)
+    decerialize raw = (A320 <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_A320'base raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (A320)) where
+    marshalInto raw_ value_ = case value_ of
+        A320{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) base) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_A320'base raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (A320))
+instance (Classes.Cerialize s (V.Vector (A320))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (A320)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (A320))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (A320)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (A320))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (A320)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (A320))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data F16 
+    = F16 
+        {base :: PlaneBase}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (F16)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (F16)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (F16)) where
+    type Cerial msg (F16) = (Capnp.Gen.ById.X832bcc6686a26d56.F16 msg)
+    decerialize raw = (F16 <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_F16'base raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (F16)) where
+    marshalInto raw_ value_ = case value_ of
+        F16{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) base) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_F16'base raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (F16))
+instance (Classes.Cerialize s (V.Vector (F16))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (F16)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (F16))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (F16)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (F16))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (F16)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (F16))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data Regression 
+    = Regression 
+        {base :: PlaneBase
+        ,b0 :: Std_.Double
+        ,beta :: (V.Vector Std_.Double)
+        ,planes :: (V.Vector Aircraft)
+        ,ymu :: Std_.Double
+        ,ysd :: Std_.Double}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (Regression)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (Regression)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (Regression)) where
+    type Cerial msg (Regression) = (Capnp.Gen.ById.X832bcc6686a26d56.Regression msg)
+    decerialize raw = (Regression <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Regression'base raw) >>= Classes.decerialize)
+                                  <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_Regression'b0 raw)
+                                  <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Regression'beta raw) >>= Classes.decerialize)
+                                  <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Regression'planes raw) >>= Classes.decerialize)
+                                  <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_Regression'ymu raw)
+                                  <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_Regression'ysd raw))
+instance (Classes.Marshal s (Regression)) where
+    marshalInto raw_ value_ = case value_ of
+        Regression{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) base) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Regression'base raw_))
+                (Capnp.Gen.ById.X832bcc6686a26d56.set_Regression'b0 raw_ b0)
+                ((Classes.cerialize (Untyped.message raw_) beta) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Regression'beta raw_))
+                ((Classes.cerialize (Untyped.message raw_) planes) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Regression'planes raw_))
+                (Capnp.Gen.ById.X832bcc6686a26d56.set_Regression'ymu raw_ ymu)
+                (Capnp.Gen.ById.X832bcc6686a26d56.set_Regression'ysd raw_ ysd)
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (Regression))
+instance (Classes.Cerialize s (V.Vector (Regression))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (Regression)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Regression))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Regression)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Regression))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Regression)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Regression))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data Aircraft 
+    = Aircraft'void 
+    | Aircraft'b737 B737
+    | Aircraft'a320 A320
+    | Aircraft'f16 F16
+    | Aircraft'unknown' Std_.Word16
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (Aircraft)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (Aircraft)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (Aircraft)) where
+    type Cerial msg (Aircraft) = (Capnp.Gen.ById.X832bcc6686a26d56.Aircraft msg)
+    decerialize raw = (do
+        raw <- (Capnp.Gen.ById.X832bcc6686a26d56.get_Aircraft' raw)
+        case raw of
+            (Capnp.Gen.ById.X832bcc6686a26d56.Aircraft'void) ->
+                (Std_.pure Aircraft'void)
+            (Capnp.Gen.ById.X832bcc6686a26d56.Aircraft'b737 raw) ->
+                (Aircraft'b737 <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Aircraft'a320 raw) ->
+                (Aircraft'a320 <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Aircraft'f16 raw) ->
+                (Aircraft'f16 <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Aircraft'unknown' tag) ->
+                (Std_.pure (Aircraft'unknown' tag))
+        )
+instance (Classes.Marshal s (Aircraft)) where
+    marshalInto raw_ value_ = case value_ of
+        (Aircraft'void) ->
+            (Capnp.Gen.ById.X832bcc6686a26d56.set_Aircraft'void raw_)
+        (Aircraft'b737 arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Aircraft'b737 raw_))
+        (Aircraft'a320 arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Aircraft'a320 raw_))
+        (Aircraft'f16 arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Aircraft'f16 raw_))
+        (Aircraft'unknown' tag) ->
+            (Capnp.Gen.ById.X832bcc6686a26d56.set_Aircraft'unknown' raw_ tag)
+instance (Classes.Cerialize s (Aircraft))
+instance (Classes.Cerialize s (V.Vector (Aircraft))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (Aircraft)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Aircraft))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Aircraft)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Aircraft))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Aircraft)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Aircraft))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data Z 
+    = Z'void 
+    | Z'zz Z
+    | Z'f64 Std_.Double
+    | Z'f32 Std_.Float
+    | Z'i64 Std_.Int64
+    | Z'i32 Std_.Int32
+    | Z'i16 Std_.Int16
+    | Z'i8 Std_.Int8
+    | Z'u64 Std_.Word64
+    | Z'u32 Std_.Word32
+    | Z'u16 Std_.Word16
+    | Z'u8 Std_.Word8
+    | Z'bool Std_.Bool
+    | Z'text T.Text
+    | Z'blob BS.ByteString
+    | Z'f64vec (V.Vector Std_.Double)
+    | Z'f32vec (V.Vector Std_.Float)
+    | Z'i64vec (V.Vector Std_.Int64)
+    | Z'i32vec (V.Vector Std_.Int32)
+    | Z'i16vec (V.Vector Std_.Int16)
+    | Z'i8vec (V.Vector Std_.Int8)
+    | Z'u64vec (V.Vector Std_.Word64)
+    | Z'u32vec (V.Vector Std_.Word32)
+    | Z'u16vec (V.Vector Std_.Word16)
+    | Z'u8vec (V.Vector Std_.Word8)
+    | Z'zvec (V.Vector Z)
+    | Z'zvecvec (V.Vector (V.Vector Z))
+    | Z'zdate Zdate
+    | Z'zdata Zdata
+    | Z'aircraftvec (V.Vector Aircraft)
+    | Z'aircraft Aircraft
+    | Z'regression Regression
+    | Z'planebase PlaneBase
+    | Z'airport Capnp.Gen.ById.X832bcc6686a26d56.Airport
+    | Z'b737 B737
+    | Z'a320 A320
+    | Z'f16 F16
+    | Z'zdatevec (V.Vector Zdate)
+    | Z'zdatavec (V.Vector Zdata)
+    | Z'boolvec (V.Vector Std_.Bool)
+    | Z'datavec (V.Vector BS.ByteString)
+    | Z'textvec (V.Vector T.Text)
+    | Z'grp Z'grp
+    | Z'echo Echo
+    | Z'echoBases EchoBases
+    | Z'unknown' Std_.Word16
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (Z)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (Z)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (Z)) where
+    type Cerial msg (Z) = (Capnp.Gen.ById.X832bcc6686a26d56.Z msg)
+    decerialize raw = (do
+        raw <- (Capnp.Gen.ById.X832bcc6686a26d56.get_Z' raw)
+        case raw of
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'void) ->
+                (Std_.pure Z'void)
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'zz raw) ->
+                (Z'zz <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'f64 raw) ->
+                (Std_.pure (Z'f64 raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'f32 raw) ->
+                (Std_.pure (Z'f32 raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'i64 raw) ->
+                (Std_.pure (Z'i64 raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'i32 raw) ->
+                (Std_.pure (Z'i32 raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'i16 raw) ->
+                (Std_.pure (Z'i16 raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'i8 raw) ->
+                (Std_.pure (Z'i8 raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'u64 raw) ->
+                (Std_.pure (Z'u64 raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'u32 raw) ->
+                (Std_.pure (Z'u32 raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'u16 raw) ->
+                (Std_.pure (Z'u16 raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'u8 raw) ->
+                (Std_.pure (Z'u8 raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'bool raw) ->
+                (Std_.pure (Z'bool raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'text raw) ->
+                (Z'text <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'blob raw) ->
+                (Z'blob <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'f64vec raw) ->
+                (Z'f64vec <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'f32vec raw) ->
+                (Z'f32vec <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'i64vec raw) ->
+                (Z'i64vec <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'i32vec raw) ->
+                (Z'i32vec <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'i16vec raw) ->
+                (Z'i16vec <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'i8vec raw) ->
+                (Z'i8vec <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'u64vec raw) ->
+                (Z'u64vec <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'u32vec raw) ->
+                (Z'u32vec <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'u16vec raw) ->
+                (Z'u16vec <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'u8vec raw) ->
+                (Z'u8vec <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'zvec raw) ->
+                (Z'zvec <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'zvecvec raw) ->
+                (Z'zvecvec <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'zdate raw) ->
+                (Z'zdate <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'zdata raw) ->
+                (Z'zdata <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'aircraftvec raw) ->
+                (Z'aircraftvec <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'aircraft raw) ->
+                (Z'aircraft <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'regression raw) ->
+                (Z'regression <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'planebase raw) ->
+                (Z'planebase <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'airport raw) ->
+                (Std_.pure (Z'airport raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'b737 raw) ->
+                (Z'b737 <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'a320 raw) ->
+                (Z'a320 <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'f16 raw) ->
+                (Z'f16 <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'zdatevec raw) ->
+                (Z'zdatevec <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'zdatavec raw) ->
+                (Z'zdatavec <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'boolvec raw) ->
+                (Z'boolvec <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'datavec raw) ->
+                (Z'datavec <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'textvec raw) ->
+                (Z'textvec <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'grp raw) ->
+                (Z'grp <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'echo raw) ->
+                (Z'echo <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'echoBases raw) ->
+                (Z'echoBases <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.X832bcc6686a26d56.Z'unknown' tag) ->
+                (Std_.pure (Z'unknown' tag))
+        )
+instance (Classes.Marshal s (Z)) where
+    marshalInto raw_ value_ = case value_ of
+        (Z'void) ->
+            (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'void raw_)
+        (Z'zz arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'zz raw_))
+        (Z'f64 arg_) ->
+            (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'f64 raw_ arg_)
+        (Z'f32 arg_) ->
+            (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'f32 raw_ arg_)
+        (Z'i64 arg_) ->
+            (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'i64 raw_ arg_)
+        (Z'i32 arg_) ->
+            (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'i32 raw_ arg_)
+        (Z'i16 arg_) ->
+            (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'i16 raw_ arg_)
+        (Z'i8 arg_) ->
+            (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'i8 raw_ arg_)
+        (Z'u64 arg_) ->
+            (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'u64 raw_ arg_)
+        (Z'u32 arg_) ->
+            (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'u32 raw_ arg_)
+        (Z'u16 arg_) ->
+            (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'u16 raw_ arg_)
+        (Z'u8 arg_) ->
+            (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'u8 raw_ arg_)
+        (Z'bool arg_) ->
+            (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'bool raw_ arg_)
+        (Z'text arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'text raw_))
+        (Z'blob arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'blob raw_))
+        (Z'f64vec arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'f64vec raw_))
+        (Z'f32vec arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'f32vec raw_))
+        (Z'i64vec arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'i64vec raw_))
+        (Z'i32vec arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'i32vec raw_))
+        (Z'i16vec arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'i16vec raw_))
+        (Z'i8vec arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'i8vec raw_))
+        (Z'u64vec arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'u64vec raw_))
+        (Z'u32vec arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'u32vec raw_))
+        (Z'u16vec arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'u16vec raw_))
+        (Z'u8vec arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'u8vec raw_))
+        (Z'zvec arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'zvec raw_))
+        (Z'zvecvec arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'zvecvec raw_))
+        (Z'zdate arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'zdate raw_))
+        (Z'zdata arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'zdata raw_))
+        (Z'aircraftvec arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'aircraftvec raw_))
+        (Z'aircraft arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'aircraft raw_))
+        (Z'regression arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'regression raw_))
+        (Z'planebase arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'planebase raw_))
+        (Z'airport arg_) ->
+            (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'airport raw_ arg_)
+        (Z'b737 arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'b737 raw_))
+        (Z'a320 arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'a320 raw_))
+        (Z'f16 arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'f16 raw_))
+        (Z'zdatevec arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'zdatevec raw_))
+        (Z'zdatavec arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'zdatavec raw_))
+        (Z'boolvec arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'boolvec raw_))
+        (Z'datavec arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'datavec raw_))
+        (Z'textvec arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'textvec raw_))
+        (Z'grp arg_) ->
+            (do
+                raw_ <- (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'grp raw_)
+                (Classes.marshalInto raw_ arg_)
+                )
+        (Z'echo arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'echo raw_))
+        (Z'echoBases arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'echoBases raw_))
+        (Z'unknown' tag) ->
+            (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'unknown' raw_ tag)
+instance (Classes.Cerialize s (Z))
+instance (Classes.Cerialize s (V.Vector (Z))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (Z)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Z))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Z)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Z))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Z)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Z))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data Z'grp 
+    = Z'grp' 
+        {first :: Std_.Word64
+        ,second :: Std_.Word64}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (Z'grp)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (Z'grp)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (Z'grp)) where
+    type Cerial msg (Z'grp) = (Capnp.Gen.ById.X832bcc6686a26d56.Z'grp msg)
+    decerialize raw = (Z'grp' <$> (Capnp.Gen.ById.X832bcc6686a26d56.get_Z'grp'first raw)
+                              <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_Z'grp'second raw))
+instance (Classes.Marshal s (Z'grp)) where
+    marshalInto raw_ value_ = case value_ of
+        Z'grp'{..} ->
+            (do
+                (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'grp'first raw_ first)
+                (Capnp.Gen.ById.X832bcc6686a26d56.set_Z'grp'second raw_ second)
+                (Std_.pure ())
+                )
+data Counter 
+    = Counter 
+        {size :: Std_.Int64
+        ,words :: T.Text
+        ,wordlist :: (V.Vector T.Text)}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (Counter)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (Counter)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (Counter)) where
+    type Cerial msg (Counter) = (Capnp.Gen.ById.X832bcc6686a26d56.Counter msg)
+    decerialize raw = (Counter <$> (Capnp.Gen.ById.X832bcc6686a26d56.get_Counter'size raw)
+                               <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Counter'words raw) >>= Classes.decerialize)
+                               <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Counter'wordlist raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (Counter)) where
+    marshalInto raw_ value_ = case value_ of
+        Counter{..} ->
+            (do
+                (Capnp.Gen.ById.X832bcc6686a26d56.set_Counter'size raw_ size)
+                ((Classes.cerialize (Untyped.message raw_) words) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Counter'words raw_))
+                ((Classes.cerialize (Untyped.message raw_) wordlist) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Counter'wordlist raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (Counter))
+instance (Classes.Cerialize s (V.Vector (Counter))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (Counter)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Counter))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Counter)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Counter))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Counter)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Counter))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data Bag 
+    = Bag 
+        {counter :: Counter}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (Bag)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (Bag)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (Bag)) where
+    type Cerial msg (Bag) = (Capnp.Gen.ById.X832bcc6686a26d56.Bag msg)
+    decerialize raw = (Bag <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Bag'counter raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (Bag)) where
+    marshalInto raw_ value_ = case value_ of
+        Bag{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) counter) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Bag'counter raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (Bag))
+instance (Classes.Cerialize s (V.Vector (Bag))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (Bag)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Bag))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Bag)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Bag))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Bag)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Bag))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data Zserver 
+    = Zserver 
+        {waitingjobs :: (V.Vector Zjob)}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (Zserver)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (Zserver)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (Zserver)) where
+    type Cerial msg (Zserver) = (Capnp.Gen.ById.X832bcc6686a26d56.Zserver msg)
+    decerialize raw = (Zserver <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Zserver'waitingjobs raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (Zserver)) where
+    marshalInto raw_ value_ = case value_ of
+        Zserver{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) waitingjobs) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Zserver'waitingjobs raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (Zserver))
+instance (Classes.Cerialize s (V.Vector (Zserver))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (Zserver)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Zserver))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Zserver)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Zserver))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Zserver)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Zserver))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data Zjob 
+    = Zjob 
+        {cmd :: T.Text
+        ,args :: (V.Vector T.Text)}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (Zjob)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (Zjob)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (Zjob)) where
+    type Cerial msg (Zjob) = (Capnp.Gen.ById.X832bcc6686a26d56.Zjob msg)
+    decerialize raw = (Zjob <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Zjob'cmd raw) >>= Classes.decerialize)
+                            <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Zjob'args raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (Zjob)) where
+    marshalInto raw_ value_ = case value_ of
+        Zjob{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) cmd) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Zjob'cmd raw_))
+                ((Classes.cerialize (Untyped.message raw_) args) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Zjob'args raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (Zjob))
+instance (Classes.Cerialize s (V.Vector (Zjob))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (Zjob)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Zjob))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Zjob)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Zjob))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Zjob)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Zjob))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data VerEmpty 
+    = VerEmpty 
+        {}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (VerEmpty)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (VerEmpty)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (VerEmpty)) where
+    type Cerial msg (VerEmpty) = (Capnp.Gen.ById.X832bcc6686a26d56.VerEmpty msg)
+    decerialize raw = (Std_.pure VerEmpty)
+instance (Classes.Marshal s (VerEmpty)) where
+    marshalInto raw_ value_ = case value_ of
+        (VerEmpty) ->
+            (do
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (VerEmpty))
+instance (Classes.Cerialize s (V.Vector (VerEmpty))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (VerEmpty)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (VerEmpty))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (VerEmpty)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (VerEmpty))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (VerEmpty)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (VerEmpty))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data VerOneData 
+    = VerOneData 
+        {val :: Std_.Int16}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (VerOneData)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (VerOneData)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (VerOneData)) where
+    type Cerial msg (VerOneData) = (Capnp.Gen.ById.X832bcc6686a26d56.VerOneData msg)
+    decerialize raw = (VerOneData <$> (Capnp.Gen.ById.X832bcc6686a26d56.get_VerOneData'val raw))
+instance (Classes.Marshal s (VerOneData)) where
+    marshalInto raw_ value_ = case value_ of
+        VerOneData{..} ->
+            (do
+                (Capnp.Gen.ById.X832bcc6686a26d56.set_VerOneData'val raw_ val)
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (VerOneData))
+instance (Classes.Cerialize s (V.Vector (VerOneData))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (VerOneData)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (VerOneData))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (VerOneData)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (VerOneData))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (VerOneData)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (VerOneData))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data VerTwoData 
+    = VerTwoData 
+        {val :: Std_.Int16
+        ,duo :: Std_.Int64}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (VerTwoData)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (VerTwoData)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (VerTwoData)) where
+    type Cerial msg (VerTwoData) = (Capnp.Gen.ById.X832bcc6686a26d56.VerTwoData msg)
+    decerialize raw = (VerTwoData <$> (Capnp.Gen.ById.X832bcc6686a26d56.get_VerTwoData'val raw)
+                                  <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_VerTwoData'duo raw))
+instance (Classes.Marshal s (VerTwoData)) where
+    marshalInto raw_ value_ = case value_ of
+        VerTwoData{..} ->
+            (do
+                (Capnp.Gen.ById.X832bcc6686a26d56.set_VerTwoData'val raw_ val)
+                (Capnp.Gen.ById.X832bcc6686a26d56.set_VerTwoData'duo raw_ duo)
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (VerTwoData))
+instance (Classes.Cerialize s (V.Vector (VerTwoData))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (VerTwoData)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (VerTwoData))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (VerTwoData)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (VerTwoData))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (VerTwoData)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (VerTwoData))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data VerOnePtr 
+    = VerOnePtr 
+        {ptr :: VerOneData}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (VerOnePtr)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (VerOnePtr)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (VerOnePtr)) where
+    type Cerial msg (VerOnePtr) = (Capnp.Gen.ById.X832bcc6686a26d56.VerOnePtr msg)
+    decerialize raw = (VerOnePtr <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_VerOnePtr'ptr raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (VerOnePtr)) where
+    marshalInto raw_ value_ = case value_ of
+        VerOnePtr{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) ptr) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_VerOnePtr'ptr raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (VerOnePtr))
+instance (Classes.Cerialize s (V.Vector (VerOnePtr))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (VerOnePtr)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (VerOnePtr))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (VerOnePtr)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (VerOnePtr))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (VerOnePtr)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (VerOnePtr))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data VerTwoPtr 
+    = VerTwoPtr 
+        {ptr1 :: VerOneData
+        ,ptr2 :: VerOneData}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (VerTwoPtr)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (VerTwoPtr)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (VerTwoPtr)) where
+    type Cerial msg (VerTwoPtr) = (Capnp.Gen.ById.X832bcc6686a26d56.VerTwoPtr msg)
+    decerialize raw = (VerTwoPtr <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_VerTwoPtr'ptr1 raw) >>= Classes.decerialize)
+                                 <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_VerTwoPtr'ptr2 raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (VerTwoPtr)) where
+    marshalInto raw_ value_ = case value_ of
+        VerTwoPtr{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) ptr1) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_VerTwoPtr'ptr1 raw_))
+                ((Classes.cerialize (Untyped.message raw_) ptr2) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_VerTwoPtr'ptr2 raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (VerTwoPtr))
+instance (Classes.Cerialize s (V.Vector (VerTwoPtr))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (VerTwoPtr)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (VerTwoPtr))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (VerTwoPtr)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (VerTwoPtr))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (VerTwoPtr)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (VerTwoPtr))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data VerTwoDataTwoPtr 
+    = VerTwoDataTwoPtr 
+        {val :: Std_.Int16
+        ,duo :: Std_.Int64
+        ,ptr1 :: VerOneData
+        ,ptr2 :: VerOneData}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (VerTwoDataTwoPtr)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (VerTwoDataTwoPtr)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (VerTwoDataTwoPtr)) where
+    type Cerial msg (VerTwoDataTwoPtr) = (Capnp.Gen.ById.X832bcc6686a26d56.VerTwoDataTwoPtr msg)
+    decerialize raw = (VerTwoDataTwoPtr <$> (Capnp.Gen.ById.X832bcc6686a26d56.get_VerTwoDataTwoPtr'val raw)
+                                        <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_VerTwoDataTwoPtr'duo raw)
+                                        <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_VerTwoDataTwoPtr'ptr1 raw) >>= Classes.decerialize)
+                                        <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_VerTwoDataTwoPtr'ptr2 raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (VerTwoDataTwoPtr)) where
+    marshalInto raw_ value_ = case value_ of
+        VerTwoDataTwoPtr{..} ->
+            (do
+                (Capnp.Gen.ById.X832bcc6686a26d56.set_VerTwoDataTwoPtr'val raw_ val)
+                (Capnp.Gen.ById.X832bcc6686a26d56.set_VerTwoDataTwoPtr'duo raw_ duo)
+                ((Classes.cerialize (Untyped.message raw_) ptr1) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_VerTwoDataTwoPtr'ptr1 raw_))
+                ((Classes.cerialize (Untyped.message raw_) ptr2) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_VerTwoDataTwoPtr'ptr2 raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (VerTwoDataTwoPtr))
+instance (Classes.Cerialize s (V.Vector (VerTwoDataTwoPtr))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (VerTwoDataTwoPtr)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (VerTwoDataTwoPtr))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (VerTwoDataTwoPtr)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (VerTwoDataTwoPtr))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (VerTwoDataTwoPtr)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (VerTwoDataTwoPtr))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data HoldsVerEmptyList 
+    = HoldsVerEmptyList 
+        {mylist :: (V.Vector VerEmpty)}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (HoldsVerEmptyList)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (HoldsVerEmptyList)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (HoldsVerEmptyList)) where
+    type Cerial msg (HoldsVerEmptyList) = (Capnp.Gen.ById.X832bcc6686a26d56.HoldsVerEmptyList msg)
+    decerialize raw = (HoldsVerEmptyList <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_HoldsVerEmptyList'mylist raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (HoldsVerEmptyList)) where
+    marshalInto raw_ value_ = case value_ of
+        HoldsVerEmptyList{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) mylist) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_HoldsVerEmptyList'mylist raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (HoldsVerEmptyList))
+instance (Classes.Cerialize s (V.Vector (HoldsVerEmptyList))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (HoldsVerEmptyList)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (HoldsVerEmptyList))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (HoldsVerEmptyList)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (HoldsVerEmptyList))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (HoldsVerEmptyList)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (HoldsVerEmptyList))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data HoldsVerOneDataList 
+    = HoldsVerOneDataList 
+        {mylist :: (V.Vector VerOneData)}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (HoldsVerOneDataList)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (HoldsVerOneDataList)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (HoldsVerOneDataList)) where
+    type Cerial msg (HoldsVerOneDataList) = (Capnp.Gen.ById.X832bcc6686a26d56.HoldsVerOneDataList msg)
+    decerialize raw = (HoldsVerOneDataList <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_HoldsVerOneDataList'mylist raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (HoldsVerOneDataList)) where
+    marshalInto raw_ value_ = case value_ of
+        HoldsVerOneDataList{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) mylist) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_HoldsVerOneDataList'mylist raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (HoldsVerOneDataList))
+instance (Classes.Cerialize s (V.Vector (HoldsVerOneDataList))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (HoldsVerOneDataList)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (HoldsVerOneDataList))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (HoldsVerOneDataList)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (HoldsVerOneDataList))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (HoldsVerOneDataList)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (HoldsVerOneDataList))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data HoldsVerTwoDataList 
+    = HoldsVerTwoDataList 
+        {mylist :: (V.Vector VerTwoData)}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (HoldsVerTwoDataList)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (HoldsVerTwoDataList)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (HoldsVerTwoDataList)) where
+    type Cerial msg (HoldsVerTwoDataList) = (Capnp.Gen.ById.X832bcc6686a26d56.HoldsVerTwoDataList msg)
+    decerialize raw = (HoldsVerTwoDataList <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_HoldsVerTwoDataList'mylist raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (HoldsVerTwoDataList)) where
+    marshalInto raw_ value_ = case value_ of
+        HoldsVerTwoDataList{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) mylist) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_HoldsVerTwoDataList'mylist raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (HoldsVerTwoDataList))
+instance (Classes.Cerialize s (V.Vector (HoldsVerTwoDataList))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (HoldsVerTwoDataList)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (HoldsVerTwoDataList))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (HoldsVerTwoDataList)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (HoldsVerTwoDataList))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (HoldsVerTwoDataList)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (HoldsVerTwoDataList))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data HoldsVerOnePtrList 
+    = HoldsVerOnePtrList 
+        {mylist :: (V.Vector VerOnePtr)}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (HoldsVerOnePtrList)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (HoldsVerOnePtrList)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (HoldsVerOnePtrList)) where
+    type Cerial msg (HoldsVerOnePtrList) = (Capnp.Gen.ById.X832bcc6686a26d56.HoldsVerOnePtrList msg)
+    decerialize raw = (HoldsVerOnePtrList <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_HoldsVerOnePtrList'mylist raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (HoldsVerOnePtrList)) where
+    marshalInto raw_ value_ = case value_ of
+        HoldsVerOnePtrList{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) mylist) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_HoldsVerOnePtrList'mylist raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (HoldsVerOnePtrList))
+instance (Classes.Cerialize s (V.Vector (HoldsVerOnePtrList))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (HoldsVerOnePtrList)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (HoldsVerOnePtrList))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (HoldsVerOnePtrList)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (HoldsVerOnePtrList))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (HoldsVerOnePtrList)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (HoldsVerOnePtrList))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data HoldsVerTwoPtrList 
+    = HoldsVerTwoPtrList 
+        {mylist :: (V.Vector VerTwoPtr)}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (HoldsVerTwoPtrList)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (HoldsVerTwoPtrList)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (HoldsVerTwoPtrList)) where
+    type Cerial msg (HoldsVerTwoPtrList) = (Capnp.Gen.ById.X832bcc6686a26d56.HoldsVerTwoPtrList msg)
+    decerialize raw = (HoldsVerTwoPtrList <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_HoldsVerTwoPtrList'mylist raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (HoldsVerTwoPtrList)) where
+    marshalInto raw_ value_ = case value_ of
+        HoldsVerTwoPtrList{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) mylist) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_HoldsVerTwoPtrList'mylist raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (HoldsVerTwoPtrList))
+instance (Classes.Cerialize s (V.Vector (HoldsVerTwoPtrList))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (HoldsVerTwoPtrList)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (HoldsVerTwoPtrList))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (HoldsVerTwoPtrList)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (HoldsVerTwoPtrList))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (HoldsVerTwoPtrList)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (HoldsVerTwoPtrList))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data HoldsVerTwoTwoList 
+    = HoldsVerTwoTwoList 
+        {mylist :: (V.Vector VerTwoDataTwoPtr)}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (HoldsVerTwoTwoList)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (HoldsVerTwoTwoList)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (HoldsVerTwoTwoList)) where
+    type Cerial msg (HoldsVerTwoTwoList) = (Capnp.Gen.ById.X832bcc6686a26d56.HoldsVerTwoTwoList msg)
+    decerialize raw = (HoldsVerTwoTwoList <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_HoldsVerTwoTwoList'mylist raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (HoldsVerTwoTwoList)) where
+    marshalInto raw_ value_ = case value_ of
+        HoldsVerTwoTwoList{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) mylist) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_HoldsVerTwoTwoList'mylist raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (HoldsVerTwoTwoList))
+instance (Classes.Cerialize s (V.Vector (HoldsVerTwoTwoList))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (HoldsVerTwoTwoList)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (HoldsVerTwoTwoList))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (HoldsVerTwoTwoList)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (HoldsVerTwoTwoList))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (HoldsVerTwoTwoList)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (HoldsVerTwoTwoList))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data HoldsVerTwoTwoPlus 
+    = HoldsVerTwoTwoPlus 
+        {mylist :: (V.Vector VerTwoTwoPlus)}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (HoldsVerTwoTwoPlus)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (HoldsVerTwoTwoPlus)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (HoldsVerTwoTwoPlus)) where
+    type Cerial msg (HoldsVerTwoTwoPlus) = (Capnp.Gen.ById.X832bcc6686a26d56.HoldsVerTwoTwoPlus msg)
+    decerialize raw = (HoldsVerTwoTwoPlus <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_HoldsVerTwoTwoPlus'mylist raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (HoldsVerTwoTwoPlus)) where
+    marshalInto raw_ value_ = case value_ of
+        HoldsVerTwoTwoPlus{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) mylist) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_HoldsVerTwoTwoPlus'mylist raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (HoldsVerTwoTwoPlus))
+instance (Classes.Cerialize s (V.Vector (HoldsVerTwoTwoPlus))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (HoldsVerTwoTwoPlus)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (HoldsVerTwoTwoPlus))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (HoldsVerTwoTwoPlus)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (HoldsVerTwoTwoPlus))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (HoldsVerTwoTwoPlus)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (HoldsVerTwoTwoPlus))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data VerTwoTwoPlus 
+    = VerTwoTwoPlus 
+        {val :: Std_.Int16
+        ,duo :: Std_.Int64
+        ,ptr1 :: VerTwoDataTwoPtr
+        ,ptr2 :: VerTwoDataTwoPtr
+        ,tre :: Std_.Int64
+        ,lst3 :: (V.Vector Std_.Int64)}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (VerTwoTwoPlus)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (VerTwoTwoPlus)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (VerTwoTwoPlus)) where
+    type Cerial msg (VerTwoTwoPlus) = (Capnp.Gen.ById.X832bcc6686a26d56.VerTwoTwoPlus msg)
+    decerialize raw = (VerTwoTwoPlus <$> (Capnp.Gen.ById.X832bcc6686a26d56.get_VerTwoTwoPlus'val raw)
+                                     <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_VerTwoTwoPlus'duo raw)
+                                     <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_VerTwoTwoPlus'ptr1 raw) >>= Classes.decerialize)
+                                     <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_VerTwoTwoPlus'ptr2 raw) >>= Classes.decerialize)
+                                     <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_VerTwoTwoPlus'tre raw)
+                                     <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_VerTwoTwoPlus'lst3 raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (VerTwoTwoPlus)) where
+    marshalInto raw_ value_ = case value_ of
+        VerTwoTwoPlus{..} ->
+            (do
+                (Capnp.Gen.ById.X832bcc6686a26d56.set_VerTwoTwoPlus'val raw_ val)
+                (Capnp.Gen.ById.X832bcc6686a26d56.set_VerTwoTwoPlus'duo raw_ duo)
+                ((Classes.cerialize (Untyped.message raw_) ptr1) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_VerTwoTwoPlus'ptr1 raw_))
+                ((Classes.cerialize (Untyped.message raw_) ptr2) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_VerTwoTwoPlus'ptr2 raw_))
+                (Capnp.Gen.ById.X832bcc6686a26d56.set_VerTwoTwoPlus'tre raw_ tre)
+                ((Classes.cerialize (Untyped.message raw_) lst3) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_VerTwoTwoPlus'lst3 raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (VerTwoTwoPlus))
+instance (Classes.Cerialize s (V.Vector (VerTwoTwoPlus))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (VerTwoTwoPlus)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (VerTwoTwoPlus))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (VerTwoTwoPlus)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (VerTwoTwoPlus))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (VerTwoTwoPlus)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (VerTwoTwoPlus))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data HoldsText 
+    = HoldsText 
+        {txt :: T.Text
+        ,lst :: (V.Vector T.Text)
+        ,lstlst :: (V.Vector (V.Vector T.Text))}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (HoldsText)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (HoldsText)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (HoldsText)) where
+    type Cerial msg (HoldsText) = (Capnp.Gen.ById.X832bcc6686a26d56.HoldsText msg)
+    decerialize raw = (HoldsText <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_HoldsText'txt raw) >>= Classes.decerialize)
+                                 <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_HoldsText'lst raw) >>= Classes.decerialize)
+                                 <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_HoldsText'lstlst raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (HoldsText)) where
+    marshalInto raw_ value_ = case value_ of
+        HoldsText{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) txt) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_HoldsText'txt raw_))
+                ((Classes.cerialize (Untyped.message raw_) lst) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_HoldsText'lst raw_))
+                ((Classes.cerialize (Untyped.message raw_) lstlst) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_HoldsText'lstlst raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (HoldsText))
+instance (Classes.Cerialize s (V.Vector (HoldsText))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (HoldsText)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (HoldsText))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (HoldsText)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (HoldsText))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (HoldsText)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (HoldsText))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data WrapEmpty 
+    = WrapEmpty 
+        {mightNotBeReallyEmpty :: VerEmpty}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (WrapEmpty)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (WrapEmpty)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (WrapEmpty)) where
+    type Cerial msg (WrapEmpty) = (Capnp.Gen.ById.X832bcc6686a26d56.WrapEmpty msg)
+    decerialize raw = (WrapEmpty <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_WrapEmpty'mightNotBeReallyEmpty raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (WrapEmpty)) where
+    marshalInto raw_ value_ = case value_ of
+        WrapEmpty{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) mightNotBeReallyEmpty) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_WrapEmpty'mightNotBeReallyEmpty raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (WrapEmpty))
+instance (Classes.Cerialize s (V.Vector (WrapEmpty))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (WrapEmpty)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (WrapEmpty))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (WrapEmpty)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (WrapEmpty))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (WrapEmpty)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (WrapEmpty))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data Wrap2x2 
+    = Wrap2x2 
+        {mightNotBeReallyEmpty :: VerTwoDataTwoPtr}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (Wrap2x2)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (Wrap2x2)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (Wrap2x2)) where
+    type Cerial msg (Wrap2x2) = (Capnp.Gen.ById.X832bcc6686a26d56.Wrap2x2 msg)
+    decerialize raw = (Wrap2x2 <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Wrap2x2'mightNotBeReallyEmpty raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (Wrap2x2)) where
+    marshalInto raw_ value_ = case value_ of
+        Wrap2x2{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) mightNotBeReallyEmpty) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Wrap2x2'mightNotBeReallyEmpty raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (Wrap2x2))
+instance (Classes.Cerialize s (V.Vector (Wrap2x2))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (Wrap2x2)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Wrap2x2))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Wrap2x2)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Wrap2x2))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Wrap2x2)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Wrap2x2))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data Wrap2x2plus 
+    = Wrap2x2plus 
+        {mightNotBeReallyEmpty :: VerTwoTwoPlus}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (Wrap2x2plus)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (Wrap2x2plus)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (Wrap2x2plus)) where
+    type Cerial msg (Wrap2x2plus) = (Capnp.Gen.ById.X832bcc6686a26d56.Wrap2x2plus msg)
+    decerialize raw = (Wrap2x2plus <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Wrap2x2plus'mightNotBeReallyEmpty raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (Wrap2x2plus)) where
+    marshalInto raw_ value_ = case value_ of
+        Wrap2x2plus{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) mightNotBeReallyEmpty) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Wrap2x2plus'mightNotBeReallyEmpty raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (Wrap2x2plus))
+instance (Classes.Cerialize s (V.Vector (Wrap2x2plus))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (Wrap2x2plus)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Wrap2x2plus))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Wrap2x2plus)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Wrap2x2plus))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Wrap2x2plus)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Wrap2x2plus))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data VoidUnion 
+    = VoidUnion'a 
+    | VoidUnion'b 
+    | VoidUnion'unknown' Std_.Word16
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (VoidUnion)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (VoidUnion)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (VoidUnion)) where
+    type Cerial msg (VoidUnion) = (Capnp.Gen.ById.X832bcc6686a26d56.VoidUnion msg)
+    decerialize raw = (do
+        raw <- (Capnp.Gen.ById.X832bcc6686a26d56.get_VoidUnion' raw)
+        case raw of
+            (Capnp.Gen.ById.X832bcc6686a26d56.VoidUnion'a) ->
+                (Std_.pure VoidUnion'a)
+            (Capnp.Gen.ById.X832bcc6686a26d56.VoidUnion'b) ->
+                (Std_.pure VoidUnion'b)
+            (Capnp.Gen.ById.X832bcc6686a26d56.VoidUnion'unknown' tag) ->
+                (Std_.pure (VoidUnion'unknown' tag))
+        )
+instance (Classes.Marshal s (VoidUnion)) where
+    marshalInto raw_ value_ = case value_ of
+        (VoidUnion'a) ->
+            (Capnp.Gen.ById.X832bcc6686a26d56.set_VoidUnion'a raw_)
+        (VoidUnion'b) ->
+            (Capnp.Gen.ById.X832bcc6686a26d56.set_VoidUnion'b raw_)
+        (VoidUnion'unknown' tag) ->
+            (Capnp.Gen.ById.X832bcc6686a26d56.set_VoidUnion'unknown' raw_ tag)
+instance (Classes.Cerialize s (VoidUnion))
+instance (Classes.Cerialize s (V.Vector (VoidUnion))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (VoidUnion)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (VoidUnion))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (VoidUnion)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (VoidUnion))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (VoidUnion)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (VoidUnion))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data Nester1Capn 
+    = Nester1Capn 
+        {strs :: (V.Vector T.Text)}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (Nester1Capn)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (Nester1Capn)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (Nester1Capn)) where
+    type Cerial msg (Nester1Capn) = (Capnp.Gen.ById.X832bcc6686a26d56.Nester1Capn msg)
+    decerialize raw = (Nester1Capn <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Nester1Capn'strs raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (Nester1Capn)) where
+    marshalInto raw_ value_ = case value_ of
+        Nester1Capn{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) strs) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Nester1Capn'strs raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (Nester1Capn))
+instance (Classes.Cerialize s (V.Vector (Nester1Capn))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (Nester1Capn)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Nester1Capn))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Nester1Capn)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Nester1Capn))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Nester1Capn)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Nester1Capn))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data RWTestCapn 
+    = RWTestCapn 
+        {nestMatrix :: (V.Vector (V.Vector Nester1Capn))}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (RWTestCapn)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (RWTestCapn)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (RWTestCapn)) where
+    type Cerial msg (RWTestCapn) = (Capnp.Gen.ById.X832bcc6686a26d56.RWTestCapn msg)
+    decerialize raw = (RWTestCapn <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_RWTestCapn'nestMatrix raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (RWTestCapn)) where
+    marshalInto raw_ value_ = case value_ of
+        RWTestCapn{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) nestMatrix) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_RWTestCapn'nestMatrix raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (RWTestCapn))
+instance (Classes.Cerialize s (V.Vector (RWTestCapn))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (RWTestCapn)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (RWTestCapn))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (RWTestCapn)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (RWTestCapn))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (RWTestCapn)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (RWTestCapn))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data ListStructCapn 
+    = ListStructCapn 
+        {vec :: (V.Vector Nester1Capn)}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (ListStructCapn)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (ListStructCapn)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (ListStructCapn)) where
+    type Cerial msg (ListStructCapn) = (Capnp.Gen.ById.X832bcc6686a26d56.ListStructCapn msg)
+    decerialize raw = (ListStructCapn <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_ListStructCapn'vec raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (ListStructCapn)) where
+    marshalInto raw_ value_ = case value_ of
+        ListStructCapn{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) vec) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_ListStructCapn'vec raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (ListStructCapn))
+instance (Classes.Cerialize s (V.Vector (ListStructCapn))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (ListStructCapn)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (ListStructCapn))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (ListStructCapn)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (ListStructCapn))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (ListStructCapn)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (ListStructCapn))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+newtype Echo 
+    = Echo Message.Client
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+class ((MonadIO.MonadIO m)
+      ,(Server.Server m cap)) => (Echo'server_ m cap) where
+    {-# MINIMAL echo'echo #-}
+    echo'echo :: cap -> (Server.MethodHandler m Echo'echo'params Echo'echo'results)
+    echo'echo _ = Server.methodUnimplemented
+export_Echo :: ((STM.MonadSTM m)
+               ,(Echo'server_ Std_.IO cap)) => Supervisors.Supervisor -> cap -> (m (Echo))
+export_Echo sup_ server_ = (STM.liftSTM (Echo <$> (Rpc.export sup_ Server.ServerOps{handleCast = (Server.unwrap server_)
+                                                                                   ,handleStop = (Server.shutdown server_)
+                                                                                   ,handleCall = (\interfaceId_ methodId_ -> case interfaceId_ of
+                                                                                       10255578992688506164 ->
+                                                                                           case methodId_ of
+                                                                                               0 ->
+                                                                                                   (Server.toUntypedHandler (echo'echo server_))
+                                                                                               _ ->
+                                                                                                   Server.methodUnimplemented
+                                                                                       _ ->
+                                                                                           Server.methodUnimplemented)})))
+instance (Rpc.IsClient (Echo)) where
+    fromClient  = Echo
+    toClient (Echo client) = client
+instance (Classes.FromPtr msg (Echo)) where
+    fromPtr  = RpcHelpers.isClientFromPtr
+instance (Classes.ToPtr s (Echo)) where
+    toPtr  = RpcHelpers.isClientToPtr
+instance (Classes.Decerialize (Echo)) where
+    type Cerial msg (Echo) = (Capnp.Gen.ById.X832bcc6686a26d56.Echo msg)
+    decerialize (Capnp.Gen.ById.X832bcc6686a26d56.Echo'newtype_ maybeCap) = case maybeCap of
+        (Std_.Nothing) ->
+            (Std_.pure (Echo Message.nullClient))
+        (Std_.Just cap) ->
+            (Echo <$> (Untyped.getClient cap))
+instance (Classes.Cerialize s (Echo)) where
+    cerialize msg (Echo client) = (Capnp.Gen.ById.X832bcc6686a26d56.Echo'newtype_ <$> (Std_.Just <$> (Untyped.appendCap msg client)))
+instance (Server.Server Std_.IO (Echo))
+instance (Echo'server_ Std_.IO (Echo)) where
+    echo'echo (Echo client) = (Rpc.clientMethodHandler 10255578992688506164 0 client)
+data Echo'echo'params 
+    = Echo'echo'params 
+        {in_ :: T.Text}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (Echo'echo'params)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (Echo'echo'params)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (Echo'echo'params)) where
+    type Cerial msg (Echo'echo'params) = (Capnp.Gen.ById.X832bcc6686a26d56.Echo'echo'params msg)
+    decerialize raw = (Echo'echo'params <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Echo'echo'params'in_ raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (Echo'echo'params)) where
+    marshalInto raw_ value_ = case value_ of
+        Echo'echo'params{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) in_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Echo'echo'params'in_ raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (Echo'echo'params))
+instance (Classes.Cerialize s (V.Vector (Echo'echo'params))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (Echo'echo'params)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Echo'echo'params))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Echo'echo'params)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Echo'echo'params))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Echo'echo'params)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Echo'echo'params))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data Echo'echo'results 
+    = Echo'echo'results 
+        {out :: T.Text}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (Echo'echo'results)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (Echo'echo'results)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (Echo'echo'results)) where
+    type Cerial msg (Echo'echo'results) = (Capnp.Gen.ById.X832bcc6686a26d56.Echo'echo'results msg)
+    decerialize raw = (Echo'echo'results <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Echo'echo'results'out raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (Echo'echo'results)) where
+    marshalInto raw_ value_ = case value_ of
+        Echo'echo'results{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) out) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Echo'echo'results'out raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (Echo'echo'results))
+instance (Classes.Cerialize s (V.Vector (Echo'echo'results))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (Echo'echo'results)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Echo'echo'results))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Echo'echo'results)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Echo'echo'results))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Echo'echo'results)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Echo'echo'results))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data Hoth 
+    = Hoth 
+        {base :: EchoBase}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (Hoth)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (Hoth)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (Hoth)) where
+    type Cerial msg (Hoth) = (Capnp.Gen.ById.X832bcc6686a26d56.Hoth msg)
+    decerialize raw = (Hoth <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Hoth'base raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (Hoth)) where
+    marshalInto raw_ value_ = case value_ of
+        Hoth{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) base) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Hoth'base raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (Hoth))
+instance (Classes.Cerialize s (V.Vector (Hoth))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (Hoth)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Hoth))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Hoth)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Hoth))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Hoth)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Hoth))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data EchoBase 
+    = EchoBase 
+        {echo :: Echo}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (EchoBase)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (EchoBase)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (EchoBase)) where
+    type Cerial msg (EchoBase) = (Capnp.Gen.ById.X832bcc6686a26d56.EchoBase msg)
+    decerialize raw = (EchoBase <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_EchoBase'echo raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (EchoBase)) where
+    marshalInto raw_ value_ = case value_ of
+        EchoBase{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) echo) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_EchoBase'echo raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (EchoBase))
+instance (Classes.Cerialize s (V.Vector (EchoBase))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (EchoBase)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (EchoBase))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (EchoBase)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (EchoBase))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (EchoBase)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (EchoBase))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data EchoBases 
+    = EchoBases 
+        {bases :: (V.Vector EchoBase)}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (EchoBases)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (EchoBases)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (EchoBases)) where
+    type Cerial msg (EchoBases) = (Capnp.Gen.ById.X832bcc6686a26d56.EchoBases msg)
+    decerialize raw = (EchoBases <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_EchoBases'bases raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (EchoBases)) where
+    marshalInto raw_ value_ = case value_ of
+        EchoBases{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) bases) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_EchoBases'bases raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (EchoBases))
+instance (Classes.Cerialize s (V.Vector (EchoBases))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (EchoBases)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (EchoBases))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (EchoBases)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (EchoBases))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (EchoBases)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (EchoBases))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data StackingRoot 
+    = StackingRoot 
+        {aWithDefault :: StackingA
+        ,a :: StackingA}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (StackingRoot)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (StackingRoot)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (StackingRoot)) where
+    type Cerial msg (StackingRoot) = (Capnp.Gen.ById.X832bcc6686a26d56.StackingRoot msg)
+    decerialize raw = (StackingRoot <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_StackingRoot'aWithDefault raw) >>= Classes.decerialize)
+                                    <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_StackingRoot'a raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (StackingRoot)) where
+    marshalInto raw_ value_ = case value_ of
+        StackingRoot{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) aWithDefault) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_StackingRoot'aWithDefault raw_))
+                ((Classes.cerialize (Untyped.message raw_) a) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_StackingRoot'a raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (StackingRoot))
+instance (Classes.Cerialize s (V.Vector (StackingRoot))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (StackingRoot)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (StackingRoot))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (StackingRoot)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (StackingRoot))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (StackingRoot)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (StackingRoot))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data StackingA 
+    = StackingA 
+        {num :: Std_.Int32
+        ,b :: StackingB}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (StackingA)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (StackingA)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (StackingA)) where
+    type Cerial msg (StackingA) = (Capnp.Gen.ById.X832bcc6686a26d56.StackingA msg)
+    decerialize raw = (StackingA <$> (Capnp.Gen.ById.X832bcc6686a26d56.get_StackingA'num raw)
+                                 <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_StackingA'b raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (StackingA)) where
+    marshalInto raw_ value_ = case value_ of
+        StackingA{..} ->
+            (do
+                (Capnp.Gen.ById.X832bcc6686a26d56.set_StackingA'num raw_ num)
+                ((Classes.cerialize (Untyped.message raw_) b) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_StackingA'b raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (StackingA))
+instance (Classes.Cerialize s (V.Vector (StackingA))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (StackingA)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (StackingA))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (StackingA)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (StackingA))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (StackingA)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (StackingA))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data StackingB 
+    = StackingB 
+        {num :: Std_.Int32}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (StackingB)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (StackingB)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (StackingB)) where
+    type Cerial msg (StackingB) = (Capnp.Gen.ById.X832bcc6686a26d56.StackingB msg)
+    decerialize raw = (StackingB <$> (Capnp.Gen.ById.X832bcc6686a26d56.get_StackingB'num raw))
+instance (Classes.Marshal s (StackingB)) where
+    marshalInto raw_ value_ = case value_ of
+        StackingB{..} ->
+            (do
+                (Capnp.Gen.ById.X832bcc6686a26d56.set_StackingB'num raw_ num)
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (StackingB))
+instance (Classes.Cerialize s (V.Vector (StackingB))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (StackingB)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (StackingB))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (StackingB)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (StackingB))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (StackingB)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (StackingB))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+newtype CallSequence 
+    = CallSequence Message.Client
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+class ((MonadIO.MonadIO m)
+      ,(Server.Server m cap)) => (CallSequence'server_ m cap) where
+    {-# MINIMAL callSequence'getNumber #-}
+    callSequence'getNumber :: cap -> (Server.MethodHandler m CallSequence'getNumber'params CallSequence'getNumber'results)
+    callSequence'getNumber _ = Server.methodUnimplemented
+export_CallSequence :: ((STM.MonadSTM m)
+                       ,(CallSequence'server_ Std_.IO cap)) => Supervisors.Supervisor -> cap -> (m (CallSequence))
+export_CallSequence sup_ server_ = (STM.liftSTM (CallSequence <$> (Rpc.export sup_ Server.ServerOps{handleCast = (Server.unwrap server_)
+                                                                                                   ,handleStop = (Server.shutdown server_)
+                                                                                                   ,handleCall = (\interfaceId_ methodId_ -> case interfaceId_ of
+                                                                                                       12371070827563042848 ->
+                                                                                                           case methodId_ of
+                                                                                                               0 ->
+                                                                                                                   (Server.toUntypedHandler (callSequence'getNumber server_))
+                                                                                                               _ ->
+                                                                                                                   Server.methodUnimplemented
+                                                                                                       _ ->
+                                                                                                           Server.methodUnimplemented)})))
+instance (Rpc.IsClient (CallSequence)) where
+    fromClient  = CallSequence
+    toClient (CallSequence client) = client
+instance (Classes.FromPtr msg (CallSequence)) where
+    fromPtr  = RpcHelpers.isClientFromPtr
+instance (Classes.ToPtr s (CallSequence)) where
+    toPtr  = RpcHelpers.isClientToPtr
+instance (Classes.Decerialize (CallSequence)) where
+    type Cerial msg (CallSequence) = (Capnp.Gen.ById.X832bcc6686a26d56.CallSequence msg)
+    decerialize (Capnp.Gen.ById.X832bcc6686a26d56.CallSequence'newtype_ maybeCap) = case maybeCap of
+        (Std_.Nothing) ->
+            (Std_.pure (CallSequence Message.nullClient))
+        (Std_.Just cap) ->
+            (CallSequence <$> (Untyped.getClient cap))
+instance (Classes.Cerialize s (CallSequence)) where
+    cerialize msg (CallSequence client) = (Capnp.Gen.ById.X832bcc6686a26d56.CallSequence'newtype_ <$> (Std_.Just <$> (Untyped.appendCap msg client)))
+instance (Server.Server Std_.IO (CallSequence))
+instance (CallSequence'server_ Std_.IO (CallSequence)) where
+    callSequence'getNumber (CallSequence client) = (Rpc.clientMethodHandler 12371070827563042848 0 client)
+data CallSequence'getNumber'params 
+    = CallSequence'getNumber'params 
+        {}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (CallSequence'getNumber'params)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (CallSequence'getNumber'params)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (CallSequence'getNumber'params)) where
+    type Cerial msg (CallSequence'getNumber'params) = (Capnp.Gen.ById.X832bcc6686a26d56.CallSequence'getNumber'params msg)
+    decerialize raw = (Std_.pure CallSequence'getNumber'params)
+instance (Classes.Marshal s (CallSequence'getNumber'params)) where
+    marshalInto raw_ value_ = case value_ of
+        (CallSequence'getNumber'params) ->
+            (do
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (CallSequence'getNumber'params))
+instance (Classes.Cerialize s (V.Vector (CallSequence'getNumber'params))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (CallSequence'getNumber'params)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (CallSequence'getNumber'params))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (CallSequence'getNumber'params)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CallSequence'getNumber'params))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CallSequence'getNumber'params)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CallSequence'getNumber'params))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data CallSequence'getNumber'results 
+    = CallSequence'getNumber'results 
+        {n :: Std_.Word32}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (CallSequence'getNumber'results)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (CallSequence'getNumber'results)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (CallSequence'getNumber'results)) where
+    type Cerial msg (CallSequence'getNumber'results) = (Capnp.Gen.ById.X832bcc6686a26d56.CallSequence'getNumber'results msg)
+    decerialize raw = (CallSequence'getNumber'results <$> (Capnp.Gen.ById.X832bcc6686a26d56.get_CallSequence'getNumber'results'n raw))
+instance (Classes.Marshal s (CallSequence'getNumber'results)) where
+    marshalInto raw_ value_ = case value_ of
+        CallSequence'getNumber'results{..} ->
+            (do
+                (Capnp.Gen.ById.X832bcc6686a26d56.set_CallSequence'getNumber'results'n raw_ n)
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (CallSequence'getNumber'results))
+instance (Classes.Cerialize s (V.Vector (CallSequence'getNumber'results))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (CallSequence'getNumber'results)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (CallSequence'getNumber'results))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (CallSequence'getNumber'results)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CallSequence'getNumber'results))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CallSequence'getNumber'results)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CallSequence'getNumber'results))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+newtype CounterFactory 
+    = CounterFactory Message.Client
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+class ((MonadIO.MonadIO m)
+      ,(Server.Server m cap)) => (CounterFactory'server_ m cap) where
+    {-# MINIMAL counterFactory'newCounter #-}
+    counterFactory'newCounter :: cap -> (Server.MethodHandler m CounterFactory'newCounter'params CounterFactory'newCounter'results)
+    counterFactory'newCounter _ = Server.methodUnimplemented
+export_CounterFactory :: ((STM.MonadSTM m)
+                         ,(CounterFactory'server_ Std_.IO cap)) => Supervisors.Supervisor -> cap -> (m (CounterFactory))
+export_CounterFactory sup_ server_ = (STM.liftSTM (CounterFactory <$> (Rpc.export sup_ Server.ServerOps{handleCast = (Server.unwrap server_)
+                                                                                                       ,handleStop = (Server.shutdown server_)
+                                                                                                       ,handleCall = (\interfaceId_ methodId_ -> case interfaceId_ of
+                                                                                                           15610220054254702620 ->
+                                                                                                               case methodId_ of
+                                                                                                                   0 ->
+                                                                                                                       (Server.toUntypedHandler (counterFactory'newCounter server_))
+                                                                                                                   _ ->
+                                                                                                                       Server.methodUnimplemented
+                                                                                                           _ ->
+                                                                                                               Server.methodUnimplemented)})))
+instance (Rpc.IsClient (CounterFactory)) where
+    fromClient  = CounterFactory
+    toClient (CounterFactory client) = client
+instance (Classes.FromPtr msg (CounterFactory)) where
+    fromPtr  = RpcHelpers.isClientFromPtr
+instance (Classes.ToPtr s (CounterFactory)) where
+    toPtr  = RpcHelpers.isClientToPtr
+instance (Classes.Decerialize (CounterFactory)) where
+    type Cerial msg (CounterFactory) = (Capnp.Gen.ById.X832bcc6686a26d56.CounterFactory msg)
+    decerialize (Capnp.Gen.ById.X832bcc6686a26d56.CounterFactory'newtype_ maybeCap) = case maybeCap of
+        (Std_.Nothing) ->
+            (Std_.pure (CounterFactory Message.nullClient))
+        (Std_.Just cap) ->
+            (CounterFactory <$> (Untyped.getClient cap))
+instance (Classes.Cerialize s (CounterFactory)) where
+    cerialize msg (CounterFactory client) = (Capnp.Gen.ById.X832bcc6686a26d56.CounterFactory'newtype_ <$> (Std_.Just <$> (Untyped.appendCap msg client)))
+instance (Server.Server Std_.IO (CounterFactory))
+instance (CounterFactory'server_ Std_.IO (CounterFactory)) where
+    counterFactory'newCounter (CounterFactory client) = (Rpc.clientMethodHandler 15610220054254702620 0 client)
+data CounterFactory'newCounter'params 
+    = CounterFactory'newCounter'params 
+        {start :: Std_.Word32}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (CounterFactory'newCounter'params)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (CounterFactory'newCounter'params)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (CounterFactory'newCounter'params)) where
+    type Cerial msg (CounterFactory'newCounter'params) = (Capnp.Gen.ById.X832bcc6686a26d56.CounterFactory'newCounter'params msg)
+    decerialize raw = (CounterFactory'newCounter'params <$> (Capnp.Gen.ById.X832bcc6686a26d56.get_CounterFactory'newCounter'params'start raw))
+instance (Classes.Marshal s (CounterFactory'newCounter'params)) where
+    marshalInto raw_ value_ = case value_ of
+        CounterFactory'newCounter'params{..} ->
+            (do
+                (Capnp.Gen.ById.X832bcc6686a26d56.set_CounterFactory'newCounter'params'start raw_ start)
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (CounterFactory'newCounter'params))
+instance (Classes.Cerialize s (V.Vector (CounterFactory'newCounter'params))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (CounterFactory'newCounter'params)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (CounterFactory'newCounter'params))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (CounterFactory'newCounter'params)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CounterFactory'newCounter'params))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CounterFactory'newCounter'params)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CounterFactory'newCounter'params))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data CounterFactory'newCounter'results 
+    = CounterFactory'newCounter'results 
+        {counter :: CallSequence}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (CounterFactory'newCounter'results)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (CounterFactory'newCounter'results)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (CounterFactory'newCounter'results)) where
+    type Cerial msg (CounterFactory'newCounter'results) = (Capnp.Gen.ById.X832bcc6686a26d56.CounterFactory'newCounter'results msg)
+    decerialize raw = (CounterFactory'newCounter'results <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_CounterFactory'newCounter'results'counter raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (CounterFactory'newCounter'results)) where
+    marshalInto raw_ value_ = case value_ of
+        CounterFactory'newCounter'results{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) counter) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_CounterFactory'newCounter'results'counter raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (CounterFactory'newCounter'results))
+instance (Classes.Cerialize s (V.Vector (CounterFactory'newCounter'results))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (CounterFactory'newCounter'results)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (CounterFactory'newCounter'results))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (CounterFactory'newCounter'results)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CounterFactory'newCounter'results))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CounterFactory'newCounter'results)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CounterFactory'newCounter'results))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+newtype CounterAcceptor 
+    = CounterAcceptor Message.Client
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+class ((MonadIO.MonadIO m)
+      ,(Server.Server m cap)) => (CounterAcceptor'server_ m cap) where
+    {-# MINIMAL counterAcceptor'accept #-}
+    counterAcceptor'accept :: cap -> (Server.MethodHandler m CounterAcceptor'accept'params CounterAcceptor'accept'results)
+    counterAcceptor'accept _ = Server.methodUnimplemented
+export_CounterAcceptor :: ((STM.MonadSTM m)
+                          ,(CounterAcceptor'server_ Std_.IO cap)) => Supervisors.Supervisor -> cap -> (m (CounterAcceptor))
+export_CounterAcceptor sup_ server_ = (STM.liftSTM (CounterAcceptor <$> (Rpc.export sup_ Server.ServerOps{handleCast = (Server.unwrap server_)
+                                                                                                         ,handleStop = (Server.shutdown server_)
+                                                                                                         ,handleCall = (\interfaceId_ methodId_ -> case interfaceId_ of
+                                                                                                             14317498215560924065 ->
+                                                                                                                 case methodId_ of
+                                                                                                                     0 ->
+                                                                                                                         (Server.toUntypedHandler (counterAcceptor'accept server_))
+                                                                                                                     _ ->
+                                                                                                                         Server.methodUnimplemented
+                                                                                                             _ ->
+                                                                                                                 Server.methodUnimplemented)})))
+instance (Rpc.IsClient (CounterAcceptor)) where
+    fromClient  = CounterAcceptor
+    toClient (CounterAcceptor client) = client
+instance (Classes.FromPtr msg (CounterAcceptor)) where
+    fromPtr  = RpcHelpers.isClientFromPtr
+instance (Classes.ToPtr s (CounterAcceptor)) where
+    toPtr  = RpcHelpers.isClientToPtr
+instance (Classes.Decerialize (CounterAcceptor)) where
+    type Cerial msg (CounterAcceptor) = (Capnp.Gen.ById.X832bcc6686a26d56.CounterAcceptor msg)
+    decerialize (Capnp.Gen.ById.X832bcc6686a26d56.CounterAcceptor'newtype_ maybeCap) = case maybeCap of
+        (Std_.Nothing) ->
+            (Std_.pure (CounterAcceptor Message.nullClient))
+        (Std_.Just cap) ->
+            (CounterAcceptor <$> (Untyped.getClient cap))
+instance (Classes.Cerialize s (CounterAcceptor)) where
+    cerialize msg (CounterAcceptor client) = (Capnp.Gen.ById.X832bcc6686a26d56.CounterAcceptor'newtype_ <$> (Std_.Just <$> (Untyped.appendCap msg client)))
+instance (Server.Server Std_.IO (CounterAcceptor))
+instance (CounterAcceptor'server_ Std_.IO (CounterAcceptor)) where
+    counterAcceptor'accept (CounterAcceptor client) = (Rpc.clientMethodHandler 14317498215560924065 0 client)
+data CounterAcceptor'accept'params 
+    = CounterAcceptor'accept'params 
+        {counter :: CallSequence}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (CounterAcceptor'accept'params)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (CounterAcceptor'accept'params)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (CounterAcceptor'accept'params)) where
+    type Cerial msg (CounterAcceptor'accept'params) = (Capnp.Gen.ById.X832bcc6686a26d56.CounterAcceptor'accept'params msg)
+    decerialize raw = (CounterAcceptor'accept'params <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_CounterAcceptor'accept'params'counter raw) >>= Classes.decerialize))
+instance (Classes.Marshal s (CounterAcceptor'accept'params)) where
+    marshalInto raw_ value_ = case value_ of
+        CounterAcceptor'accept'params{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) counter) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_CounterAcceptor'accept'params'counter raw_))
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (CounterAcceptor'accept'params))
+instance (Classes.Cerialize s (V.Vector (CounterAcceptor'accept'params))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (CounterAcceptor'accept'params)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (CounterAcceptor'accept'params))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (CounterAcceptor'accept'params)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CounterAcceptor'accept'params))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CounterAcceptor'accept'params)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CounterAcceptor'accept'params))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data CounterAcceptor'accept'results 
+    = CounterAcceptor'accept'results 
+        {}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (CounterAcceptor'accept'results)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (CounterAcceptor'accept'results)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (CounterAcceptor'accept'results)) where
+    type Cerial msg (CounterAcceptor'accept'results) = (Capnp.Gen.ById.X832bcc6686a26d56.CounterAcceptor'accept'results msg)
+    decerialize raw = (Std_.pure CounterAcceptor'accept'results)
+instance (Classes.Marshal s (CounterAcceptor'accept'results)) where
+    marshalInto raw_ value_ = case value_ of
+        (CounterAcceptor'accept'results) ->
+            (do
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (CounterAcceptor'accept'results))
+instance (Classes.Cerialize s (V.Vector (CounterAcceptor'accept'results))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (CounterAcceptor'accept'results)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (CounterAcceptor'accept'results))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (CounterAcceptor'accept'results)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CounterAcceptor'accept'results))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CounterAcceptor'accept'results)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (CounterAcceptor'accept'results))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+newtype Top 
+    = Top Message.Client
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+class ((MonadIO.MonadIO m)
+      ,(Server.Server m cap)) => (Top'server_ m cap) where
+    {-# MINIMAL top'top #-}
+    top'top :: cap -> (Server.MethodHandler m Top'top'params Top'top'results)
+    top'top _ = Server.methodUnimplemented
+export_Top :: ((STM.MonadSTM m)
+              ,(Top'server_ Std_.IO cap)) => Supervisors.Supervisor -> cap -> (m (Top))
+export_Top sup_ server_ = (STM.liftSTM (Top <$> (Rpc.export sup_ Server.ServerOps{handleCast = (Server.unwrap server_)
+                                                                                 ,handleStop = (Server.shutdown server_)
+                                                                                 ,handleCall = (\interfaceId_ methodId_ -> case interfaceId_ of
+                                                                                     17861645508359101525 ->
+                                                                                         case methodId_ of
+                                                                                             0 ->
+                                                                                                 (Server.toUntypedHandler (top'top server_))
+                                                                                             _ ->
+                                                                                                 Server.methodUnimplemented
+                                                                                     _ ->
+                                                                                         Server.methodUnimplemented)})))
+instance (Rpc.IsClient (Top)) where
+    fromClient  = Top
+    toClient (Top client) = client
+instance (Classes.FromPtr msg (Top)) where
+    fromPtr  = RpcHelpers.isClientFromPtr
+instance (Classes.ToPtr s (Top)) where
+    toPtr  = RpcHelpers.isClientToPtr
+instance (Classes.Decerialize (Top)) where
+    type Cerial msg (Top) = (Capnp.Gen.ById.X832bcc6686a26d56.Top msg)
+    decerialize (Capnp.Gen.ById.X832bcc6686a26d56.Top'newtype_ maybeCap) = case maybeCap of
+        (Std_.Nothing) ->
+            (Std_.pure (Top Message.nullClient))
+        (Std_.Just cap) ->
+            (Top <$> (Untyped.getClient cap))
+instance (Classes.Cerialize s (Top)) where
+    cerialize msg (Top client) = (Capnp.Gen.ById.X832bcc6686a26d56.Top'newtype_ <$> (Std_.Just <$> (Untyped.appendCap msg client)))
+instance (Server.Server Std_.IO (Top))
+instance (Top'server_ Std_.IO (Top)) where
+    top'top (Top client) = (Rpc.clientMethodHandler 17861645508359101525 0 client)
+data Top'top'params 
+    = Top'top'params 
+        {}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (Top'top'params)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (Top'top'params)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (Top'top'params)) where
+    type Cerial msg (Top'top'params) = (Capnp.Gen.ById.X832bcc6686a26d56.Top'top'params msg)
+    decerialize raw = (Std_.pure Top'top'params)
+instance (Classes.Marshal s (Top'top'params)) where
+    marshalInto raw_ value_ = case value_ of
+        (Top'top'params) ->
+            (do
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (Top'top'params))
+instance (Classes.Cerialize s (V.Vector (Top'top'params))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (Top'top'params)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Top'top'params))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Top'top'params)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Top'top'params))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Top'top'params)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Top'top'params))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data Top'top'results 
+    = Top'top'results 
+        {}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (Top'top'results)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (Top'top'results)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (Top'top'results)) where
+    type Cerial msg (Top'top'results) = (Capnp.Gen.ById.X832bcc6686a26d56.Top'top'results msg)
+    decerialize raw = (Std_.pure Top'top'results)
+instance (Classes.Marshal s (Top'top'results)) where
+    marshalInto raw_ value_ = case value_ of
+        (Top'top'results) ->
+            (do
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (Top'top'results))
+instance (Classes.Cerialize s (V.Vector (Top'top'results))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (Top'top'results)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Top'top'results))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Top'top'results)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Top'top'results))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Top'top'results)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Top'top'results))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+newtype Left 
+    = Left Message.Client
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+class ((MonadIO.MonadIO m)
+      ,(Top'server_ m cap)) => (Left'server_ m cap) where
+    {-# MINIMAL left'left #-}
+    left'left :: cap -> (Server.MethodHandler m Left'left'params Left'left'results)
+    left'left _ = Server.methodUnimplemented
+export_Left :: ((STM.MonadSTM m)
+               ,(Left'server_ Std_.IO cap)) => Supervisors.Supervisor -> cap -> (m (Left))
+export_Left sup_ server_ = (STM.liftSTM (Left <$> (Rpc.export sup_ Server.ServerOps{handleCast = (Server.unwrap server_)
+                                                                                   ,handleStop = (Server.shutdown server_)
+                                                                                   ,handleCall = (\interfaceId_ methodId_ -> case interfaceId_ of
+                                                                                       17679152961798450446 ->
+                                                                                           case methodId_ of
+                                                                                               0 ->
+                                                                                                   (Server.toUntypedHandler (left'left server_))
+                                                                                               _ ->
+                                                                                                   Server.methodUnimplemented
+                                                                                       17861645508359101525 ->
+                                                                                           case methodId_ of
+                                                                                               0 ->
+                                                                                                   (Server.toUntypedHandler (top'top server_))
+                                                                                               _ ->
+                                                                                                   Server.methodUnimplemented
+                                                                                       _ ->
+                                                                                           Server.methodUnimplemented)})))
+instance (Rpc.IsClient (Left)) where
+    fromClient  = Left
+    toClient (Left client) = client
+instance (Classes.FromPtr msg (Left)) where
+    fromPtr  = RpcHelpers.isClientFromPtr
+instance (Classes.ToPtr s (Left)) where
+    toPtr  = RpcHelpers.isClientToPtr
+instance (Classes.Decerialize (Left)) where
+    type Cerial msg (Left) = (Capnp.Gen.ById.X832bcc6686a26d56.Left msg)
+    decerialize (Capnp.Gen.ById.X832bcc6686a26d56.Left'newtype_ maybeCap) = case maybeCap of
+        (Std_.Nothing) ->
+            (Std_.pure (Left Message.nullClient))
+        (Std_.Just cap) ->
+            (Left <$> (Untyped.getClient cap))
+instance (Classes.Cerialize s (Left)) where
+    cerialize msg (Left client) = (Capnp.Gen.ById.X832bcc6686a26d56.Left'newtype_ <$> (Std_.Just <$> (Untyped.appendCap msg client)))
+instance (Server.Server Std_.IO (Left))
+instance (Left'server_ Std_.IO (Left)) where
+    left'left (Left client) = (Rpc.clientMethodHandler 17679152961798450446 0 client)
+instance (Top'server_ Std_.IO (Left)) where
+    top'top (Left client) = (Rpc.clientMethodHandler 17861645508359101525 0 client)
+data Left'left'params 
+    = Left'left'params 
+        {}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (Left'left'params)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (Left'left'params)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (Left'left'params)) where
+    type Cerial msg (Left'left'params) = (Capnp.Gen.ById.X832bcc6686a26d56.Left'left'params msg)
+    decerialize raw = (Std_.pure Left'left'params)
+instance (Classes.Marshal s (Left'left'params)) where
+    marshalInto raw_ value_ = case value_ of
+        (Left'left'params) ->
+            (do
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (Left'left'params))
+instance (Classes.Cerialize s (V.Vector (Left'left'params))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (Left'left'params)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Left'left'params))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Left'left'params)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Left'left'params))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Left'left'params)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Left'left'params))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data Left'left'results 
+    = Left'left'results 
+        {}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (Left'left'results)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (Left'left'results)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (Left'left'results)) where
+    type Cerial msg (Left'left'results) = (Capnp.Gen.ById.X832bcc6686a26d56.Left'left'results msg)
+    decerialize raw = (Std_.pure Left'left'results)
+instance (Classes.Marshal s (Left'left'results)) where
+    marshalInto raw_ value_ = case value_ of
+        (Left'left'results) ->
+            (do
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (Left'left'results))
+instance (Classes.Cerialize s (V.Vector (Left'left'results))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (Left'left'results)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Left'left'results))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Left'left'results)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Left'left'results))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Left'left'results)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Left'left'results))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+newtype Right 
+    = Right Message.Client
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+class ((MonadIO.MonadIO m)
+      ,(Top'server_ m cap)) => (Right'server_ m cap) where
+    {-# MINIMAL right'right #-}
+    right'right :: cap -> (Server.MethodHandler m Right'right'params Right'right'results)
+    right'right _ = Server.methodUnimplemented
+export_Right :: ((STM.MonadSTM m)
+                ,(Right'server_ Std_.IO cap)) => Supervisors.Supervisor -> cap -> (m (Right))
+export_Right sup_ server_ = (STM.liftSTM (Right <$> (Rpc.export sup_ Server.ServerOps{handleCast = (Server.unwrap server_)
+                                                                                     ,handleStop = (Server.shutdown server_)
+                                                                                     ,handleCall = (\interfaceId_ methodId_ -> case interfaceId_ of
+                                                                                         14712639595305348988 ->
+                                                                                             case methodId_ of
+                                                                                                 0 ->
+                                                                                                     (Server.toUntypedHandler (right'right server_))
+                                                                                                 _ ->
+                                                                                                     Server.methodUnimplemented
+                                                                                         17861645508359101525 ->
+                                                                                             case methodId_ of
+                                                                                                 0 ->
+                                                                                                     (Server.toUntypedHandler (top'top server_))
+                                                                                                 _ ->
+                                                                                                     Server.methodUnimplemented
+                                                                                         _ ->
+                                                                                             Server.methodUnimplemented)})))
+instance (Rpc.IsClient (Right)) where
+    fromClient  = Right
+    toClient (Right client) = client
+instance (Classes.FromPtr msg (Right)) where
+    fromPtr  = RpcHelpers.isClientFromPtr
+instance (Classes.ToPtr s (Right)) where
+    toPtr  = RpcHelpers.isClientToPtr
+instance (Classes.Decerialize (Right)) where
+    type Cerial msg (Right) = (Capnp.Gen.ById.X832bcc6686a26d56.Right msg)
+    decerialize (Capnp.Gen.ById.X832bcc6686a26d56.Right'newtype_ maybeCap) = case maybeCap of
+        (Std_.Nothing) ->
+            (Std_.pure (Right Message.nullClient))
+        (Std_.Just cap) ->
+            (Right <$> (Untyped.getClient cap))
+instance (Classes.Cerialize s (Right)) where
+    cerialize msg (Right client) = (Capnp.Gen.ById.X832bcc6686a26d56.Right'newtype_ <$> (Std_.Just <$> (Untyped.appendCap msg client)))
+instance (Server.Server Std_.IO (Right))
+instance (Right'server_ Std_.IO (Right)) where
+    right'right (Right client) = (Rpc.clientMethodHandler 14712639595305348988 0 client)
+instance (Top'server_ Std_.IO (Right)) where
+    top'top (Right client) = (Rpc.clientMethodHandler 17861645508359101525 0 client)
+data Right'right'params 
+    = Right'right'params 
+        {}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (Right'right'params)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (Right'right'params)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (Right'right'params)) where
+    type Cerial msg (Right'right'params) = (Capnp.Gen.ById.X832bcc6686a26d56.Right'right'params msg)
+    decerialize raw = (Std_.pure Right'right'params)
+instance (Classes.Marshal s (Right'right'params)) where
+    marshalInto raw_ value_ = case value_ of
+        (Right'right'params) ->
+            (do
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (Right'right'params))
+instance (Classes.Cerialize s (V.Vector (Right'right'params))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (Right'right'params)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Right'right'params))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Right'right'params)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Right'right'params))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Right'right'params)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Right'right'params))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data Right'right'results 
+    = Right'right'results 
+        {}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (Right'right'results)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (Right'right'results)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (Right'right'results)) where
+    type Cerial msg (Right'right'results) = (Capnp.Gen.ById.X832bcc6686a26d56.Right'right'results msg)
+    decerialize raw = (Std_.pure Right'right'results)
+instance (Classes.Marshal s (Right'right'results)) where
+    marshalInto raw_ value_ = case value_ of
+        (Right'right'results) ->
+            (do
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (Right'right'results))
+instance (Classes.Cerialize s (V.Vector (Right'right'results))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (Right'right'results)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Right'right'results))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Right'right'results)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Right'right'results))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Right'right'results)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Right'right'results))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+newtype Bottom 
+    = Bottom Message.Client
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+class ((MonadIO.MonadIO m)
+      ,(Left'server_ m cap)
+      ,(Right'server_ m cap)) => (Bottom'server_ m cap) where
+    {-# MINIMAL bottom'bottom #-}
+    bottom'bottom :: cap -> (Server.MethodHandler m Bottom'bottom'params Bottom'bottom'results)
+    bottom'bottom _ = Server.methodUnimplemented
+export_Bottom :: ((STM.MonadSTM m)
+                 ,(Bottom'server_ Std_.IO cap)) => Supervisors.Supervisor -> cap -> (m (Bottom))
+export_Bottom sup_ server_ = (STM.liftSTM (Bottom <$> (Rpc.export sup_ Server.ServerOps{handleCast = (Server.unwrap server_)
+                                                                                       ,handleStop = (Server.shutdown server_)
+                                                                                       ,handleCall = (\interfaceId_ methodId_ -> case interfaceId_ of
+                                                                                           18402872613340521775 ->
+                                                                                               case methodId_ of
+                                                                                                   0 ->
+                                                                                                       (Server.toUntypedHandler (bottom'bottom server_))
+                                                                                                   _ ->
+                                                                                                       Server.methodUnimplemented
+                                                                                           17679152961798450446 ->
+                                                                                               case methodId_ of
+                                                                                                   0 ->
+                                                                                                       (Server.toUntypedHandler (left'left server_))
+                                                                                                   _ ->
+                                                                                                       Server.methodUnimplemented
+                                                                                           17861645508359101525 ->
+                                                                                               case methodId_ of
+                                                                                                   0 ->
+                                                                                                       (Server.toUntypedHandler (top'top server_))
+                                                                                                   _ ->
+                                                                                                       Server.methodUnimplemented
+                                                                                           14712639595305348988 ->
+                                                                                               case methodId_ of
+                                                                                                   0 ->
+                                                                                                       (Server.toUntypedHandler (right'right server_))
+                                                                                                   _ ->
+                                                                                                       Server.methodUnimplemented
+                                                                                           _ ->
+                                                                                               Server.methodUnimplemented)})))
+instance (Rpc.IsClient (Bottom)) where
+    fromClient  = Bottom
+    toClient (Bottom client) = client
+instance (Classes.FromPtr msg (Bottom)) where
+    fromPtr  = RpcHelpers.isClientFromPtr
+instance (Classes.ToPtr s (Bottom)) where
+    toPtr  = RpcHelpers.isClientToPtr
+instance (Classes.Decerialize (Bottom)) where
+    type Cerial msg (Bottom) = (Capnp.Gen.ById.X832bcc6686a26d56.Bottom msg)
+    decerialize (Capnp.Gen.ById.X832bcc6686a26d56.Bottom'newtype_ maybeCap) = case maybeCap of
+        (Std_.Nothing) ->
+            (Std_.pure (Bottom Message.nullClient))
+        (Std_.Just cap) ->
+            (Bottom <$> (Untyped.getClient cap))
+instance (Classes.Cerialize s (Bottom)) where
+    cerialize msg (Bottom client) = (Capnp.Gen.ById.X832bcc6686a26d56.Bottom'newtype_ <$> (Std_.Just <$> (Untyped.appendCap msg client)))
+instance (Server.Server Std_.IO (Bottom))
+instance (Bottom'server_ Std_.IO (Bottom)) where
+    bottom'bottom (Bottom client) = (Rpc.clientMethodHandler 18402872613340521775 0 client)
+instance (Left'server_ Std_.IO (Bottom)) where
+    left'left (Bottom client) = (Rpc.clientMethodHandler 17679152961798450446 0 client)
+instance (Top'server_ Std_.IO (Bottom)) where
+    top'top (Bottom client) = (Rpc.clientMethodHandler 17861645508359101525 0 client)
+instance (Right'server_ Std_.IO (Bottom)) where
+    right'right (Bottom client) = (Rpc.clientMethodHandler 14712639595305348988 0 client)
+data Bottom'bottom'params 
+    = Bottom'bottom'params 
+        {}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (Bottom'bottom'params)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (Bottom'bottom'params)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (Bottom'bottom'params)) where
+    type Cerial msg (Bottom'bottom'params) = (Capnp.Gen.ById.X832bcc6686a26d56.Bottom'bottom'params msg)
+    decerialize raw = (Std_.pure Bottom'bottom'params)
+instance (Classes.Marshal s (Bottom'bottom'params)) where
+    marshalInto raw_ value_ = case value_ of
+        (Bottom'bottom'params) ->
+            (do
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (Bottom'bottom'params))
+instance (Classes.Cerialize s (V.Vector (Bottom'bottom'params))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (Bottom'bottom'params)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Bottom'bottom'params))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Bottom'bottom'params)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Bottom'bottom'params))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Bottom'bottom'params)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Bottom'bottom'params))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data Bottom'bottom'results 
+    = Bottom'bottom'results 
+        {}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (Bottom'bottom'results)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (Bottom'bottom'results)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (Bottom'bottom'results)) where
+    type Cerial msg (Bottom'bottom'results) = (Capnp.Gen.ById.X832bcc6686a26d56.Bottom'bottom'results msg)
+    decerialize raw = (Std_.pure Bottom'bottom'results)
+instance (Classes.Marshal s (Bottom'bottom'results)) where
+    marshalInto raw_ value_ = case value_ of
+        (Bottom'bottom'results) ->
+            (do
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (Bottom'bottom'results))
+instance (Classes.Cerialize s (V.Vector (Bottom'bottom'results))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (Bottom'bottom'results)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Bottom'bottom'results))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Bottom'bottom'results)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Bottom'bottom'results))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Bottom'bottom'results)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Bottom'bottom'results))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data Defaults 
+    = Defaults 
+        {text :: T.Text
+        ,data_ :: BS.ByteString
+        ,float :: Std_.Float
+        ,int :: Std_.Int32
+        ,uint :: Std_.Word32}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (Defaults)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (Defaults)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (Defaults)) where
+    type Cerial msg (Defaults) = (Capnp.Gen.ById.X832bcc6686a26d56.Defaults msg)
+    decerialize raw = (Defaults <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Defaults'text raw) >>= Classes.decerialize)
+                                <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_Defaults'data_ raw) >>= Classes.decerialize)
+                                <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_Defaults'float raw)
+                                <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_Defaults'int raw)
+                                <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_Defaults'uint raw))
+instance (Classes.Marshal s (Defaults)) where
+    marshalInto raw_ value_ = case value_ of
+        Defaults{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) text) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Defaults'text raw_))
+                ((Classes.cerialize (Untyped.message raw_) data_) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_Defaults'data_ raw_))
+                (Capnp.Gen.ById.X832bcc6686a26d56.set_Defaults'float raw_ float)
+                (Capnp.Gen.ById.X832bcc6686a26d56.set_Defaults'int raw_ int)
+                (Capnp.Gen.ById.X832bcc6686a26d56.set_Defaults'uint raw_ uint)
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (Defaults))
+instance (Classes.Cerialize s (V.Vector (Defaults))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (Defaults)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Defaults))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Defaults)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Defaults))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Defaults)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Defaults))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data BenchmarkA 
+    = BenchmarkA 
+        {name :: T.Text
+        ,birthDay :: Std_.Int64
+        ,phone :: T.Text
+        ,siblings :: Std_.Int32
+        ,spouse :: Std_.Bool
+        ,money :: Std_.Double}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance (Default.Default (BenchmarkA)) where
+    def  = GenHelpersPure.defaultStruct
+instance (Classes.FromStruct Message.ConstMsg (BenchmarkA)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance (Classes.Decerialize (BenchmarkA)) where
+    type Cerial msg (BenchmarkA) = (Capnp.Gen.ById.X832bcc6686a26d56.BenchmarkA msg)
+    decerialize raw = (BenchmarkA <$> ((Capnp.Gen.ById.X832bcc6686a26d56.get_BenchmarkA'name raw) >>= Classes.decerialize)
+                                  <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_BenchmarkA'birthDay raw)
+                                  <*> ((Capnp.Gen.ById.X832bcc6686a26d56.get_BenchmarkA'phone raw) >>= Classes.decerialize)
+                                  <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_BenchmarkA'siblings raw)
+                                  <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_BenchmarkA'spouse raw)
+                                  <*> (Capnp.Gen.ById.X832bcc6686a26d56.get_BenchmarkA'money raw))
+instance (Classes.Marshal s (BenchmarkA)) where
+    marshalInto raw_ value_ = case value_ of
+        BenchmarkA{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) name) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_BenchmarkA'name raw_))
+                (Capnp.Gen.ById.X832bcc6686a26d56.set_BenchmarkA'birthDay raw_ birthDay)
+                ((Classes.cerialize (Untyped.message raw_) phone) >>= (Capnp.Gen.ById.X832bcc6686a26d56.set_BenchmarkA'phone raw_))
+                (Capnp.Gen.ById.X832bcc6686a26d56.set_BenchmarkA'siblings raw_ siblings)
+                (Capnp.Gen.ById.X832bcc6686a26d56.set_BenchmarkA'spouse raw_ spouse)
+                (Capnp.Gen.ById.X832bcc6686a26d56.set_BenchmarkA'money raw_ money)
+                (Std_.pure ())
+                )
+instance (Classes.Cerialize s (BenchmarkA))
+instance (Classes.Cerialize s (V.Vector (BenchmarkA))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (BenchmarkA)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (BenchmarkA))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (BenchmarkA)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (BenchmarkA))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (BenchmarkA)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (BenchmarkA))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance (Classes.Decerialize Capnp.Gen.ById.X832bcc6686a26d56.Airport) where
+    type Cerial msg Capnp.Gen.ById.X832bcc6686a26d56.Airport = Capnp.Gen.ById.X832bcc6686a26d56.Airport
+    decerialize  = Std_.pure
+instance (Classes.Cerialize s Capnp.Gen.ById.X832bcc6686a26d56.Airport) where
+    cerialize _ = Std_.pure
+instance (Classes.Cerialize s (V.Vector Capnp.Gen.ById.X832bcc6686a26d56.Airport)) where
+    cerialize  = Classes.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector Capnp.Gen.ById.X832bcc6686a26d56.Airport))) where
+    cerialize  = Classes.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.X832bcc6686a26d56.Airport)))) where
+    cerialize  = Classes.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.X832bcc6686a26d56.Airport))))) where
+    cerialize  = Classes.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.X832bcc6686a26d56.Airport)))))) where
+    cerialize  = Classes.cerializeBasicVec
+instance (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Capnp.Gen.ById.X832bcc6686a26d56.Airport))))))) where
     cerialize  = Classes.cerializeBasicVec
diff --git a/gen/tests/Capnp/Gen/ById/Xb6421fb8e478d144.hs b/gen/tests/Capnp/Gen/ById/Xb6421fb8e478d144.hs
new file mode 100644
--- /dev/null
+++ b/gen/tests/Capnp/Gen/ById/Xb6421fb8e478d144.hs
@@ -0,0 +1,10 @@
+{-# OPTIONS_GHC -Wno-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports #-}
+{-# OPTIONS_GHC -Wno-unused-matches #-}
+{-# OPTIONS_GHC -Wno-orphans #-}
+module Capnp.Gen.ById.Xb6421fb8e478d144(module Capnp.Gen.Generics) where
+import Capnp.Gen.Generics
+import qualified Prelude as Std_
+import qualified Data.Word as Std_
+import qualified Data.Int as Std_
+import Prelude ((<$>), (<*>), (>>=))
diff --git a/gen/tests/Capnp/Gen/ById/Xb6421fb8e478d144/Pure.hs b/gen/tests/Capnp/Gen/ById/Xb6421fb8e478d144/Pure.hs
new file mode 100644
--- /dev/null
+++ b/gen/tests/Capnp/Gen/ById/Xb6421fb8e478d144/Pure.hs
@@ -0,0 +1,10 @@
+{-# OPTIONS_GHC -Wno-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports #-}
+{-# OPTIONS_GHC -Wno-unused-matches #-}
+{-# OPTIONS_GHC -Wno-orphans #-}
+module Capnp.Gen.ById.Xb6421fb8e478d144.Pure(module Capnp.Gen.Generics.Pure) where
+import Capnp.Gen.Generics.Pure
+import qualified Prelude as Std_
+import qualified Data.Word as Std_
+import qualified Data.Int as Std_
+import Prelude ((<$>), (<*>), (>>=))
diff --git a/gen/tests/Capnp/Gen/Generics.hs b/gen/tests/Capnp/Gen/Generics.hs
new file mode 100644
--- /dev/null
+++ b/gen/tests/Capnp/Gen/Generics.hs
@@ -0,0 +1,521 @@
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# OPTIONS_GHC -Wno-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports #-}
+{-# OPTIONS_GHC -Wno-unused-matches #-}
+{-# OPTIONS_GHC -Wno-orphans #-}
+module Capnp.Gen.Generics where
+import qualified Capnp.Message as Message
+import qualified Capnp.Untyped as Untyped
+import qualified Capnp.Basics as Basics
+import qualified Capnp.GenHelpers as GenHelpers
+import qualified Capnp.Classes as Classes
+import qualified GHC.Generics as Generics
+import qualified Capnp.Bits as Std_
+import qualified Data.Maybe as Std_
+import qualified Capnp.GenHelpers.ReExports.Data.ByteString as BS
+import qualified Prelude as Std_
+import qualified Data.Word as Std_
+import qualified Data.Int as Std_
+import Prelude ((<$>), (<*>), (>>=))
+newtype Maybe t msg
+    = Maybe'newtype_ (Untyped.Struct msg)
+instance (Classes.FromStruct msg (Maybe t msg)) where
+    fromStruct struct = (Std_.pure (Maybe'newtype_ struct))
+instance (Classes.ToStruct msg (Maybe t msg)) where
+    toStruct (Maybe'newtype_ struct) = struct
+instance (Untyped.HasMessage (Maybe t msg)) where
+    type InMessage (Maybe t msg) = msg
+    message (Maybe'newtype_ struct) = (Untyped.message struct)
+instance (Untyped.MessageDefault (Maybe t msg)) where
+    messageDefault msg = (Maybe'newtype_ (Untyped.messageDefault msg))
+instance (Classes.FromPtr msg (Maybe t msg)) where
+    fromPtr msg ptr = (Maybe'newtype_ <$> (Classes.fromPtr msg ptr))
+instance (Classes.ToPtr s (Maybe t (Message.MutMsg s))) where
+    toPtr msg (Maybe'newtype_ struct) = (Classes.toPtr msg struct)
+instance (Classes.Allocate s (Maybe t (Message.MutMsg s))) where
+    new msg = (Maybe'newtype_ <$> (Untyped.allocStruct msg 1 1))
+instance (Basics.ListElem msg (Maybe t msg)) where
+    newtype List msg (Maybe t msg)
+        = Maybe'List_ (Untyped.ListOf msg (Untyped.Struct msg))
+    listFromPtr msg ptr = (Maybe'List_ <$> (Classes.fromPtr msg ptr))
+    toUntypedList (Maybe'List_ l) = (Untyped.ListStruct l)
+    length (Maybe'List_ l) = (Untyped.length l)
+    index i (Maybe'List_ l) = (do
+        elt <- (Untyped.index i l)
+        (Classes.fromStruct elt)
+        )
+instance (Basics.MutListElem s (Maybe t (Message.MutMsg s))) where
+    setIndex (Maybe'newtype_ elt) i (Maybe'List_ l) = (Untyped.setIndex elt i l)
+    newList msg len = (Maybe'List_ <$> (Untyped.allocCompositeList msg 1 1 len))
+data Maybe' t msg
+    = Maybe'nothing 
+    | Maybe'just t
+    | Maybe'unknown' Std_.Word16
+instance ((Classes.FromPtr msg t)) => (Classes.FromStruct msg (Maybe' t msg)) where
+    fromStruct struct = (do
+        tag <- (GenHelpers.getTag struct 0)
+        case tag of
+            0 ->
+                (Std_.pure Maybe'nothing)
+            1 ->
+                (Maybe'just <$> (do
+                    ptr <- (Untyped.getPtr 0 struct)
+                    (Classes.fromPtr (Untyped.message struct) ptr)
+                    ))
+            _ ->
+                (Std_.pure (Maybe'unknown' (Std_.fromIntegral tag)))
+        )
+get_Maybe' :: ((Untyped.ReadCtx m msg)
+              ,(Classes.FromStruct msg (Maybe' t msg))) => (Maybe t msg) -> (m (Maybe' t msg))
+get_Maybe' (Maybe'newtype_ struct) = (Classes.fromStruct struct)
+set_Maybe'nothing :: ((Untyped.RWCtx m s)) => (Maybe t (Message.MutMsg s)) -> (m ())
+set_Maybe'nothing (Maybe'newtype_ struct) = (do
+    (GenHelpers.setWordField struct (0 :: Std_.Word16) 0 0 0)
+    (Std_.pure ())
+    )
+set_Maybe'just :: ((Untyped.RWCtx m s)
+                  ,(Classes.ToPtr s t)) => (Maybe t (Message.MutMsg s)) -> t -> (m ())
+set_Maybe'just (Maybe'newtype_ struct) value = (do
+    (GenHelpers.setWordField struct (1 :: Std_.Word16) 0 0 0)
+    (do
+        ptr <- (Classes.toPtr (Untyped.message struct) value)
+        (Untyped.setPtr ptr 0 struct)
+        )
+    )
+set_Maybe'unknown' :: ((Untyped.RWCtx m s)) => (Maybe t (Message.MutMsg s)) -> Std_.Word16 -> (m ())
+set_Maybe'unknown' (Maybe'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 0 0 0)
+newtype Either a b msg
+    = Either'newtype_ (Untyped.Struct msg)
+instance (Classes.FromStruct msg (Either a b msg)) where
+    fromStruct struct = (Std_.pure (Either'newtype_ struct))
+instance (Classes.ToStruct msg (Either a b msg)) where
+    toStruct (Either'newtype_ struct) = struct
+instance (Untyped.HasMessage (Either a b msg)) where
+    type InMessage (Either a b msg) = msg
+    message (Either'newtype_ struct) = (Untyped.message struct)
+instance (Untyped.MessageDefault (Either a b msg)) where
+    messageDefault msg = (Either'newtype_ (Untyped.messageDefault msg))
+instance (Classes.FromPtr msg (Either a b msg)) where
+    fromPtr msg ptr = (Either'newtype_ <$> (Classes.fromPtr msg ptr))
+instance (Classes.ToPtr s (Either a b (Message.MutMsg s))) where
+    toPtr msg (Either'newtype_ struct) = (Classes.toPtr msg struct)
+instance (Classes.Allocate s (Either a b (Message.MutMsg s))) where
+    new msg = (Either'newtype_ <$> (Untyped.allocStruct msg 1 1))
+instance (Basics.ListElem msg (Either a b msg)) where
+    newtype List msg (Either a b msg)
+        = Either'List_ (Untyped.ListOf msg (Untyped.Struct msg))
+    listFromPtr msg ptr = (Either'List_ <$> (Classes.fromPtr msg ptr))
+    toUntypedList (Either'List_ l) = (Untyped.ListStruct l)
+    length (Either'List_ l) = (Untyped.length l)
+    index i (Either'List_ l) = (do
+        elt <- (Untyped.index i l)
+        (Classes.fromStruct elt)
+        )
+instance (Basics.MutListElem s (Either a b (Message.MutMsg s))) where
+    setIndex (Either'newtype_ elt) i (Either'List_ l) = (Untyped.setIndex elt i l)
+    newList msg len = (Either'List_ <$> (Untyped.allocCompositeList msg 1 1 len))
+data Either' a b msg
+    = Either'left a
+    | Either'right b
+    | Either'unknown' Std_.Word16
+instance ((Classes.FromPtr msg a)
+         ,(Classes.FromPtr msg b)) => (Classes.FromStruct msg (Either' a b msg)) where
+    fromStruct struct = (do
+        tag <- (GenHelpers.getTag struct 0)
+        case tag of
+            0 ->
+                (Either'left <$> (do
+                    ptr <- (Untyped.getPtr 0 struct)
+                    (Classes.fromPtr (Untyped.message struct) ptr)
+                    ))
+            1 ->
+                (Either'right <$> (do
+                    ptr <- (Untyped.getPtr 0 struct)
+                    (Classes.fromPtr (Untyped.message struct) ptr)
+                    ))
+            _ ->
+                (Std_.pure (Either'unknown' (Std_.fromIntegral tag)))
+        )
+get_Either' :: ((Untyped.ReadCtx m msg)
+               ,(Classes.FromStruct msg (Either' a b msg))) => (Either a b msg) -> (m (Either' a b msg))
+get_Either' (Either'newtype_ struct) = (Classes.fromStruct struct)
+set_Either'left :: ((Untyped.RWCtx m s)
+                   ,(Classes.ToPtr s a)) => (Either a b (Message.MutMsg s)) -> a -> (m ())
+set_Either'left (Either'newtype_ struct) value = (do
+    (GenHelpers.setWordField struct (0 :: Std_.Word16) 0 0 0)
+    (do
+        ptr <- (Classes.toPtr (Untyped.message struct) value)
+        (Untyped.setPtr ptr 0 struct)
+        )
+    )
+set_Either'right :: ((Untyped.RWCtx m s)
+                    ,(Classes.ToPtr s b)) => (Either a b (Message.MutMsg s)) -> b -> (m ())
+set_Either'right (Either'newtype_ struct) value = (do
+    (GenHelpers.setWordField struct (1 :: Std_.Word16) 0 0 0)
+    (do
+        ptr <- (Classes.toPtr (Untyped.message struct) value)
+        (Untyped.setPtr ptr 0 struct)
+        )
+    )
+set_Either'unknown' :: ((Untyped.RWCtx m s)) => (Either a b (Message.MutMsg s)) -> Std_.Word16 -> (m ())
+set_Either'unknown' (Either'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 0 0 0)
+newtype Pair a b msg
+    = Pair'newtype_ (Untyped.Struct msg)
+instance (Classes.FromStruct msg (Pair a b msg)) where
+    fromStruct struct = (Std_.pure (Pair'newtype_ struct))
+instance (Classes.ToStruct msg (Pair a b msg)) where
+    toStruct (Pair'newtype_ struct) = struct
+instance (Untyped.HasMessage (Pair a b msg)) where
+    type InMessage (Pair a b msg) = msg
+    message (Pair'newtype_ struct) = (Untyped.message struct)
+instance (Untyped.MessageDefault (Pair a b msg)) where
+    messageDefault msg = (Pair'newtype_ (Untyped.messageDefault msg))
+instance (Classes.FromPtr msg (Pair a b msg)) where
+    fromPtr msg ptr = (Pair'newtype_ <$> (Classes.fromPtr msg ptr))
+instance (Classes.ToPtr s (Pair a b (Message.MutMsg s))) where
+    toPtr msg (Pair'newtype_ struct) = (Classes.toPtr msg struct)
+instance (Classes.Allocate s (Pair a b (Message.MutMsg s))) where
+    new msg = (Pair'newtype_ <$> (Untyped.allocStruct msg 0 2))
+instance (Basics.ListElem msg (Pair a b msg)) where
+    newtype List msg (Pair a b msg)
+        = Pair'List_ (Untyped.ListOf msg (Untyped.Struct msg))
+    listFromPtr msg ptr = (Pair'List_ <$> (Classes.fromPtr msg ptr))
+    toUntypedList (Pair'List_ l) = (Untyped.ListStruct l)
+    length (Pair'List_ l) = (Untyped.length l)
+    index i (Pair'List_ l) = (do
+        elt <- (Untyped.index i l)
+        (Classes.fromStruct elt)
+        )
+instance (Basics.MutListElem s (Pair a b (Message.MutMsg s))) where
+    setIndex (Pair'newtype_ elt) i (Pair'List_ l) = (Untyped.setIndex elt i l)
+    newList msg len = (Pair'List_ <$> (Untyped.allocCompositeList msg 0 2 len))
+get_Pair'fst :: ((Untyped.ReadCtx m msg)
+                ,(Classes.FromPtr msg a)) => (Pair a b msg) -> (m a)
+get_Pair'fst (Pair'newtype_ struct) = (do
+    ptr <- (Untyped.getPtr 0 struct)
+    (Classes.fromPtr (Untyped.message struct) ptr)
+    )
+set_Pair'fst :: ((Untyped.RWCtx m s)
+                ,(Classes.ToPtr s a)) => (Pair a b (Message.MutMsg s)) -> a -> (m ())
+set_Pair'fst (Pair'newtype_ struct) value = (do
+    ptr <- (Classes.toPtr (Untyped.message struct) value)
+    (Untyped.setPtr ptr 0 struct)
+    )
+has_Pair'fst :: ((Untyped.ReadCtx m msg)) => (Pair a b msg) -> (m Std_.Bool)
+has_Pair'fst (Pair'newtype_ struct) = (Std_.isJust <$> (Untyped.getPtr 0 struct))
+get_Pair'snd :: ((Untyped.ReadCtx m msg)
+                ,(Classes.FromPtr msg b)) => (Pair a b msg) -> (m b)
+get_Pair'snd (Pair'newtype_ struct) = (do
+    ptr <- (Untyped.getPtr 1 struct)
+    (Classes.fromPtr (Untyped.message struct) ptr)
+    )
+set_Pair'snd :: ((Untyped.RWCtx m s)
+                ,(Classes.ToPtr s b)) => (Pair a b (Message.MutMsg s)) -> b -> (m ())
+set_Pair'snd (Pair'newtype_ struct) value = (do
+    ptr <- (Classes.toPtr (Untyped.message struct) value)
+    (Untyped.setPtr ptr 1 struct)
+    )
+has_Pair'snd :: ((Untyped.ReadCtx m msg)) => (Pair a b msg) -> (m Std_.Bool)
+has_Pair'snd (Pair'newtype_ struct) = (Std_.isJust <$> (Untyped.getPtr 1 struct))
+newtype Nested t msg
+    = Nested'newtype_ (Untyped.Struct msg)
+instance (Classes.FromStruct msg (Nested t msg)) where
+    fromStruct struct = (Std_.pure (Nested'newtype_ struct))
+instance (Classes.ToStruct msg (Nested t msg)) where
+    toStruct (Nested'newtype_ struct) = struct
+instance (Untyped.HasMessage (Nested t msg)) where
+    type InMessage (Nested t msg) = msg
+    message (Nested'newtype_ struct) = (Untyped.message struct)
+instance (Untyped.MessageDefault (Nested t msg)) where
+    messageDefault msg = (Nested'newtype_ (Untyped.messageDefault msg))
+instance (Classes.FromPtr msg (Nested t msg)) where
+    fromPtr msg ptr = (Nested'newtype_ <$> (Classes.fromPtr msg ptr))
+instance (Classes.ToPtr s (Nested t (Message.MutMsg s))) where
+    toPtr msg (Nested'newtype_ struct) = (Classes.toPtr msg struct)
+instance (Classes.Allocate s (Nested t (Message.MutMsg s))) where
+    new msg = (Nested'newtype_ <$> (Untyped.allocStruct msg 0 0))
+instance (Basics.ListElem msg (Nested t msg)) where
+    newtype List msg (Nested t msg)
+        = Nested'List_ (Untyped.ListOf msg (Untyped.Struct msg))
+    listFromPtr msg ptr = (Nested'List_ <$> (Classes.fromPtr msg ptr))
+    toUntypedList (Nested'List_ l) = (Untyped.ListStruct l)
+    length (Nested'List_ l) = (Untyped.length l)
+    index i (Nested'List_ l) = (do
+        elt <- (Untyped.index i l)
+        (Classes.fromStruct elt)
+        )
+instance (Basics.MutListElem s (Nested t (Message.MutMsg s))) where
+    setIndex (Nested'newtype_ elt) i (Nested'List_ l) = (Untyped.setIndex elt i l)
+    newList msg len = (Nested'List_ <$> (Untyped.allocCompositeList msg 0 0 len))
+newtype Nested'SomeStruct t msg
+    = Nested'SomeStruct'newtype_ (Untyped.Struct msg)
+instance (Classes.FromStruct msg (Nested'SomeStruct t msg)) where
+    fromStruct struct = (Std_.pure (Nested'SomeStruct'newtype_ struct))
+instance (Classes.ToStruct msg (Nested'SomeStruct t msg)) where
+    toStruct (Nested'SomeStruct'newtype_ struct) = struct
+instance (Untyped.HasMessage (Nested'SomeStruct t msg)) where
+    type InMessage (Nested'SomeStruct t msg) = msg
+    message (Nested'SomeStruct'newtype_ struct) = (Untyped.message struct)
+instance (Untyped.MessageDefault (Nested'SomeStruct t msg)) where
+    messageDefault msg = (Nested'SomeStruct'newtype_ (Untyped.messageDefault msg))
+instance (Classes.FromPtr msg (Nested'SomeStruct t msg)) where
+    fromPtr msg ptr = (Nested'SomeStruct'newtype_ <$> (Classes.fromPtr msg ptr))
+instance (Classes.ToPtr s (Nested'SomeStruct t (Message.MutMsg s))) where
+    toPtr msg (Nested'SomeStruct'newtype_ struct) = (Classes.toPtr msg struct)
+instance (Classes.Allocate s (Nested'SomeStruct t (Message.MutMsg s))) where
+    new msg = (Nested'SomeStruct'newtype_ <$> (Untyped.allocStruct msg 0 1))
+instance (Basics.ListElem msg (Nested'SomeStruct t msg)) where
+    newtype List msg (Nested'SomeStruct t msg)
+        = Nested'SomeStruct'List_ (Untyped.ListOf msg (Untyped.Struct msg))
+    listFromPtr msg ptr = (Nested'SomeStruct'List_ <$> (Classes.fromPtr msg ptr))
+    toUntypedList (Nested'SomeStruct'List_ l) = (Untyped.ListStruct l)
+    length (Nested'SomeStruct'List_ l) = (Untyped.length l)
+    index i (Nested'SomeStruct'List_ l) = (do
+        elt <- (Untyped.index i l)
+        (Classes.fromStruct elt)
+        )
+instance (Basics.MutListElem s (Nested'SomeStruct t (Message.MutMsg s))) where
+    setIndex (Nested'SomeStruct'newtype_ elt) i (Nested'SomeStruct'List_ l) = (Untyped.setIndex elt i l)
+    newList msg len = (Nested'SomeStruct'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
+get_Nested'SomeStruct'value :: ((Untyped.ReadCtx m msg)
+                               ,(Classes.FromPtr msg t)) => (Nested'SomeStruct t msg) -> (m t)
+get_Nested'SomeStruct'value (Nested'SomeStruct'newtype_ struct) = (do
+    ptr <- (Untyped.getPtr 0 struct)
+    (Classes.fromPtr (Untyped.message struct) ptr)
+    )
+set_Nested'SomeStruct'value :: ((Untyped.RWCtx m s)
+                               ,(Classes.ToPtr s t)) => (Nested'SomeStruct t (Message.MutMsg s)) -> t -> (m ())
+set_Nested'SomeStruct'value (Nested'SomeStruct'newtype_ struct) value = (do
+    ptr <- (Classes.toPtr (Untyped.message struct) value)
+    (Untyped.setPtr ptr 0 struct)
+    )
+has_Nested'SomeStruct'value :: ((Untyped.ReadCtx m msg)) => (Nested'SomeStruct t msg) -> (m Std_.Bool)
+has_Nested'SomeStruct'value (Nested'SomeStruct'newtype_ struct) = (Std_.isJust <$> (Untyped.getPtr 0 struct))
+newtype Nested'SomeInterface t msg
+    = Nested'SomeInterface'newtype_ (Std_.Maybe (Untyped.Cap msg))
+instance (Classes.FromPtr msg (Nested'SomeInterface t msg)) where
+    fromPtr msg ptr = (Nested'SomeInterface'newtype_ <$> (Classes.fromPtr msg ptr))
+instance (Classes.ToPtr s (Nested'SomeInterface t (Message.MutMsg s))) where
+    toPtr msg (Nested'SomeInterface'newtype_ (Std_.Nothing)) = (Std_.pure Std_.Nothing)
+    toPtr msg (Nested'SomeInterface'newtype_ (Std_.Just cap)) = (Std_.pure (Std_.Just (Untyped.PtrCap cap)))
+newtype Nested'SomeInterface'method'params t msg
+    = Nested'SomeInterface'method'params'newtype_ (Untyped.Struct msg)
+instance (Classes.FromStruct msg (Nested'SomeInterface'method'params t msg)) where
+    fromStruct struct = (Std_.pure (Nested'SomeInterface'method'params'newtype_ struct))
+instance (Classes.ToStruct msg (Nested'SomeInterface'method'params t msg)) where
+    toStruct (Nested'SomeInterface'method'params'newtype_ struct) = struct
+instance (Untyped.HasMessage (Nested'SomeInterface'method'params t msg)) where
+    type InMessage (Nested'SomeInterface'method'params t msg) = msg
+    message (Nested'SomeInterface'method'params'newtype_ struct) = (Untyped.message struct)
+instance (Untyped.MessageDefault (Nested'SomeInterface'method'params t msg)) where
+    messageDefault msg = (Nested'SomeInterface'method'params'newtype_ (Untyped.messageDefault msg))
+instance (Classes.FromPtr msg (Nested'SomeInterface'method'params t msg)) where
+    fromPtr msg ptr = (Nested'SomeInterface'method'params'newtype_ <$> (Classes.fromPtr msg ptr))
+instance (Classes.ToPtr s (Nested'SomeInterface'method'params t (Message.MutMsg s))) where
+    toPtr msg (Nested'SomeInterface'method'params'newtype_ struct) = (Classes.toPtr msg struct)
+instance (Classes.Allocate s (Nested'SomeInterface'method'params t (Message.MutMsg s))) where
+    new msg = (Nested'SomeInterface'method'params'newtype_ <$> (Untyped.allocStruct msg 0 1))
+instance (Basics.ListElem msg (Nested'SomeInterface'method'params t msg)) where
+    newtype List msg (Nested'SomeInterface'method'params t msg)
+        = Nested'SomeInterface'method'params'List_ (Untyped.ListOf msg (Untyped.Struct msg))
+    listFromPtr msg ptr = (Nested'SomeInterface'method'params'List_ <$> (Classes.fromPtr msg ptr))
+    toUntypedList (Nested'SomeInterface'method'params'List_ l) = (Untyped.ListStruct l)
+    length (Nested'SomeInterface'method'params'List_ l) = (Untyped.length l)
+    index i (Nested'SomeInterface'method'params'List_ l) = (do
+        elt <- (Untyped.index i l)
+        (Classes.fromStruct elt)
+        )
+instance (Basics.MutListElem s (Nested'SomeInterface'method'params t (Message.MutMsg s))) where
+    setIndex (Nested'SomeInterface'method'params'newtype_ elt) i (Nested'SomeInterface'method'params'List_ l) = (Untyped.setIndex elt i l)
+    newList msg len = (Nested'SomeInterface'method'params'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
+get_Nested'SomeInterface'method'params'arg :: ((Untyped.ReadCtx m msg)
+                                              ,(Classes.FromPtr msg t)) => (Nested'SomeInterface'method'params t msg) -> (m t)
+get_Nested'SomeInterface'method'params'arg (Nested'SomeInterface'method'params'newtype_ struct) = (do
+    ptr <- (Untyped.getPtr 0 struct)
+    (Classes.fromPtr (Untyped.message struct) ptr)
+    )
+set_Nested'SomeInterface'method'params'arg :: ((Untyped.RWCtx m s)
+                                              ,(Classes.ToPtr s t)) => (Nested'SomeInterface'method'params t (Message.MutMsg s)) -> t -> (m ())
+set_Nested'SomeInterface'method'params'arg (Nested'SomeInterface'method'params'newtype_ struct) value = (do
+    ptr <- (Classes.toPtr (Untyped.message struct) value)
+    (Untyped.setPtr ptr 0 struct)
+    )
+has_Nested'SomeInterface'method'params'arg :: ((Untyped.ReadCtx m msg)) => (Nested'SomeInterface'method'params t msg) -> (m Std_.Bool)
+has_Nested'SomeInterface'method'params'arg (Nested'SomeInterface'method'params'newtype_ struct) = (Std_.isJust <$> (Untyped.getPtr 0 struct))
+newtype Nested'SomeInterface'method'results t msg
+    = Nested'SomeInterface'method'results'newtype_ (Untyped.Struct msg)
+instance (Classes.FromStruct msg (Nested'SomeInterface'method'results t msg)) where
+    fromStruct struct = (Std_.pure (Nested'SomeInterface'method'results'newtype_ struct))
+instance (Classes.ToStruct msg (Nested'SomeInterface'method'results t msg)) where
+    toStruct (Nested'SomeInterface'method'results'newtype_ struct) = struct
+instance (Untyped.HasMessage (Nested'SomeInterface'method'results t msg)) where
+    type InMessage (Nested'SomeInterface'method'results t msg) = msg
+    message (Nested'SomeInterface'method'results'newtype_ struct) = (Untyped.message struct)
+instance (Untyped.MessageDefault (Nested'SomeInterface'method'results t msg)) where
+    messageDefault msg = (Nested'SomeInterface'method'results'newtype_ (Untyped.messageDefault msg))
+instance (Classes.FromPtr msg (Nested'SomeInterface'method'results t msg)) where
+    fromPtr msg ptr = (Nested'SomeInterface'method'results'newtype_ <$> (Classes.fromPtr msg ptr))
+instance (Classes.ToPtr s (Nested'SomeInterface'method'results t (Message.MutMsg s))) where
+    toPtr msg (Nested'SomeInterface'method'results'newtype_ struct) = (Classes.toPtr msg struct)
+instance (Classes.Allocate s (Nested'SomeInterface'method'results t (Message.MutMsg s))) where
+    new msg = (Nested'SomeInterface'method'results'newtype_ <$> (Untyped.allocStruct msg 0 1))
+instance (Basics.ListElem msg (Nested'SomeInterface'method'results t msg)) where
+    newtype List msg (Nested'SomeInterface'method'results t msg)
+        = Nested'SomeInterface'method'results'List_ (Untyped.ListOf msg (Untyped.Struct msg))
+    listFromPtr msg ptr = (Nested'SomeInterface'method'results'List_ <$> (Classes.fromPtr msg ptr))
+    toUntypedList (Nested'SomeInterface'method'results'List_ l) = (Untyped.ListStruct l)
+    length (Nested'SomeInterface'method'results'List_ l) = (Untyped.length l)
+    index i (Nested'SomeInterface'method'results'List_ l) = (do
+        elt <- (Untyped.index i l)
+        (Classes.fromStruct elt)
+        )
+instance (Basics.MutListElem s (Nested'SomeInterface'method'results t (Message.MutMsg s))) where
+    setIndex (Nested'SomeInterface'method'results'newtype_ elt) i (Nested'SomeInterface'method'results'List_ l) = (Untyped.setIndex elt i l)
+    newList msg len = (Nested'SomeInterface'method'results'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
+get_Nested'SomeInterface'method'results'result :: ((Untyped.ReadCtx m msg)
+                                                  ,(Classes.FromPtr msg t)) => (Nested'SomeInterface'method'results t msg) -> (m t)
+get_Nested'SomeInterface'method'results'result (Nested'SomeInterface'method'results'newtype_ struct) = (do
+    ptr <- (Untyped.getPtr 0 struct)
+    (Classes.fromPtr (Untyped.message struct) ptr)
+    )
+set_Nested'SomeInterface'method'results'result :: ((Untyped.RWCtx m s)
+                                                  ,(Classes.ToPtr s t)) => (Nested'SomeInterface'method'results t (Message.MutMsg s)) -> t -> (m ())
+set_Nested'SomeInterface'method'results'result (Nested'SomeInterface'method'results'newtype_ struct) value = (do
+    ptr <- (Classes.toPtr (Untyped.message struct) value)
+    (Untyped.setPtr ptr 0 struct)
+    )
+has_Nested'SomeInterface'method'results'result :: ((Untyped.ReadCtx m msg)) => (Nested'SomeInterface'method'results t msg) -> (m Std_.Bool)
+has_Nested'SomeInterface'method'results'result (Nested'SomeInterface'method'results'newtype_ struct) = (Std_.isJust <$> (Untyped.getPtr 0 struct))
+newtype Specialized t msg
+    = Specialized'newtype_ (Untyped.Struct msg)
+instance (Classes.FromStruct msg (Specialized t msg)) where
+    fromStruct struct = (Std_.pure (Specialized'newtype_ struct))
+instance (Classes.ToStruct msg (Specialized t msg)) where
+    toStruct (Specialized'newtype_ struct) = struct
+instance (Untyped.HasMessage (Specialized t msg)) where
+    type InMessage (Specialized t msg) = msg
+    message (Specialized'newtype_ struct) = (Untyped.message struct)
+instance (Untyped.MessageDefault (Specialized t msg)) where
+    messageDefault msg = (Specialized'newtype_ (Untyped.messageDefault msg))
+instance (Classes.FromPtr msg (Specialized t msg)) where
+    fromPtr msg ptr = (Specialized'newtype_ <$> (Classes.fromPtr msg ptr))
+instance (Classes.ToPtr s (Specialized t (Message.MutMsg s))) where
+    toPtr msg (Specialized'newtype_ struct) = (Classes.toPtr msg struct)
+instance (Classes.Allocate s (Specialized t (Message.MutMsg s))) where
+    new msg = (Specialized'newtype_ <$> (Untyped.allocStruct msg 0 2))
+instance (Basics.ListElem msg (Specialized t msg)) where
+    newtype List msg (Specialized t msg)
+        = Specialized'List_ (Untyped.ListOf msg (Untyped.Struct msg))
+    listFromPtr msg ptr = (Specialized'List_ <$> (Classes.fromPtr msg ptr))
+    toUntypedList (Specialized'List_ l) = (Untyped.ListStruct l)
+    length (Specialized'List_ l) = (Untyped.length l)
+    index i (Specialized'List_ l) = (do
+        elt <- (Untyped.index i l)
+        (Classes.fromStruct elt)
+        )
+instance (Basics.MutListElem s (Specialized t (Message.MutMsg s))) where
+    setIndex (Specialized'newtype_ elt) i (Specialized'List_ l) = (Untyped.setIndex elt i l)
+    newList msg len = (Specialized'List_ <$> (Untyped.allocCompositeList msg 0 2 len))
+get_Specialized'either :: ((Untyped.ReadCtx m msg)
+                          ,(Classes.FromPtr msg (Either (Basics.Text msg) t msg))) => (Specialized t msg) -> (m (Either (Basics.Text msg) t msg))
+get_Specialized'either (Specialized'newtype_ struct) = (do
+    ptr <- (Untyped.getPtr 0 struct)
+    (Classes.fromPtr (Untyped.message struct) ptr)
+    )
+set_Specialized'either :: ((Untyped.RWCtx m s)
+                          ,(Classes.ToPtr s (Either (Basics.Text (Message.MutMsg s)) t (Message.MutMsg s)))) => (Specialized t (Message.MutMsg s)) -> (Either (Basics.Text (Message.MutMsg s)) t (Message.MutMsg s)) -> (m ())
+set_Specialized'either (Specialized'newtype_ struct) value = (do
+    ptr <- (Classes.toPtr (Untyped.message struct) value)
+    (Untyped.setPtr ptr 0 struct)
+    )
+has_Specialized'either :: ((Untyped.ReadCtx m msg)) => (Specialized t msg) -> (m Std_.Bool)
+has_Specialized'either (Specialized'newtype_ struct) = (Std_.isJust <$> (Untyped.getPtr 0 struct))
+new_Specialized'either :: ((Untyped.RWCtx m s)) => (Specialized t (Message.MutMsg s)) -> (m (Either (Basics.Text (Message.MutMsg s)) t (Message.MutMsg s)))
+new_Specialized'either struct = (do
+    result <- (Classes.new (Untyped.message struct))
+    (set_Specialized'either struct result)
+    (Std_.pure result)
+    )
+get_Specialized'nestedStruct :: ((Untyped.ReadCtx m msg)
+                                ,(Classes.FromPtr msg (Nested'SomeStruct (Basics.Data msg) msg))) => (Specialized t msg) -> (m (Nested'SomeStruct (Basics.Data msg) msg))
+get_Specialized'nestedStruct (Specialized'newtype_ struct) = (do
+    ptr <- (Untyped.getPtr 1 struct)
+    (Classes.fromPtr (Untyped.message struct) ptr)
+    )
+set_Specialized'nestedStruct :: ((Untyped.RWCtx m s)
+                                ,(Classes.ToPtr s (Nested'SomeStruct (Basics.Data (Message.MutMsg s)) (Message.MutMsg s)))) => (Specialized t (Message.MutMsg s)) -> (Nested'SomeStruct (Basics.Data (Message.MutMsg s)) (Message.MutMsg s)) -> (m ())
+set_Specialized'nestedStruct (Specialized'newtype_ struct) value = (do
+    ptr <- (Classes.toPtr (Untyped.message struct) value)
+    (Untyped.setPtr ptr 1 struct)
+    )
+has_Specialized'nestedStruct :: ((Untyped.ReadCtx m msg)) => (Specialized t msg) -> (m Std_.Bool)
+has_Specialized'nestedStruct (Specialized'newtype_ struct) = (Std_.isJust <$> (Untyped.getPtr 1 struct))
+new_Specialized'nestedStruct :: ((Untyped.RWCtx m s)) => (Specialized t (Message.MutMsg s)) -> (m (Nested'SomeStruct (Basics.Data (Message.MutMsg s)) (Message.MutMsg s)))
+new_Specialized'nestedStruct struct = (do
+    result <- (Classes.new (Untyped.message struct))
+    (set_Specialized'nestedStruct struct result)
+    (Std_.pure result)
+    )
+newtype HasGroup t msg
+    = HasGroup'newtype_ (Untyped.Struct msg)
+instance (Classes.FromStruct msg (HasGroup t msg)) where
+    fromStruct struct = (Std_.pure (HasGroup'newtype_ struct))
+instance (Classes.ToStruct msg (HasGroup t msg)) where
+    toStruct (HasGroup'newtype_ struct) = struct
+instance (Untyped.HasMessage (HasGroup t msg)) where
+    type InMessage (HasGroup t msg) = msg
+    message (HasGroup'newtype_ struct) = (Untyped.message struct)
+instance (Untyped.MessageDefault (HasGroup t msg)) where
+    messageDefault msg = (HasGroup'newtype_ (Untyped.messageDefault msg))
+instance (Classes.FromPtr msg (HasGroup t msg)) where
+    fromPtr msg ptr = (HasGroup'newtype_ <$> (Classes.fromPtr msg ptr))
+instance (Classes.ToPtr s (HasGroup t (Message.MutMsg s))) where
+    toPtr msg (HasGroup'newtype_ struct) = (Classes.toPtr msg struct)
+instance (Classes.Allocate s (HasGroup t (Message.MutMsg s))) where
+    new msg = (HasGroup'newtype_ <$> (Untyped.allocStruct msg 0 1))
+instance (Basics.ListElem msg (HasGroup t msg)) where
+    newtype List msg (HasGroup t msg)
+        = HasGroup'List_ (Untyped.ListOf msg (Untyped.Struct msg))
+    listFromPtr msg ptr = (HasGroup'List_ <$> (Classes.fromPtr msg ptr))
+    toUntypedList (HasGroup'List_ l) = (Untyped.ListStruct l)
+    length (HasGroup'List_ l) = (Untyped.length l)
+    index i (HasGroup'List_ l) = (do
+        elt <- (Untyped.index i l)
+        (Classes.fromStruct elt)
+        )
+instance (Basics.MutListElem s (HasGroup t (Message.MutMsg s))) where
+    setIndex (HasGroup'newtype_ elt) i (HasGroup'List_ l) = (Untyped.setIndex elt i l)
+    newList msg len = (HasGroup'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
+get_HasGroup'theGroup :: ((Untyped.ReadCtx m msg)
+                         ,(Classes.FromStruct msg (HasGroup'theGroup t msg))) => (HasGroup t msg) -> (m (HasGroup'theGroup t msg))
+get_HasGroup'theGroup (HasGroup'newtype_ struct) = (Classes.fromStruct struct)
+newtype HasGroup'theGroup t msg
+    = HasGroup'theGroup'newtype_ (Untyped.Struct msg)
+instance (Classes.FromStruct msg (HasGroup'theGroup t msg)) where
+    fromStruct struct = (Std_.pure (HasGroup'theGroup'newtype_ struct))
+instance (Classes.ToStruct msg (HasGroup'theGroup t msg)) where
+    toStruct (HasGroup'theGroup'newtype_ struct) = struct
+instance (Untyped.HasMessage (HasGroup'theGroup t msg)) where
+    type InMessage (HasGroup'theGroup t msg) = msg
+    message (HasGroup'theGroup'newtype_ struct) = (Untyped.message struct)
+instance (Untyped.MessageDefault (HasGroup'theGroup t msg)) where
+    messageDefault msg = (HasGroup'theGroup'newtype_ (Untyped.messageDefault msg))
+get_HasGroup'theGroup'value :: ((Untyped.ReadCtx m msg)
+                               ,(Classes.FromPtr msg t)) => (HasGroup'theGroup t msg) -> (m t)
+get_HasGroup'theGroup'value (HasGroup'theGroup'newtype_ struct) = (do
+    ptr <- (Untyped.getPtr 0 struct)
+    (Classes.fromPtr (Untyped.message struct) ptr)
+    )
+set_HasGroup'theGroup'value :: ((Untyped.RWCtx m s)
+                               ,(Classes.ToPtr s t)) => (HasGroup'theGroup t (Message.MutMsg s)) -> t -> (m ())
+set_HasGroup'theGroup'value (HasGroup'theGroup'newtype_ struct) value = (do
+    ptr <- (Classes.toPtr (Untyped.message struct) value)
+    (Untyped.setPtr ptr 0 struct)
+    )
+has_HasGroup'theGroup'value :: ((Untyped.ReadCtx m msg)) => (HasGroup'theGroup t msg) -> (m Std_.Bool)
+has_HasGroup'theGroup'value (HasGroup'theGroup'newtype_ struct) = (Std_.isJust <$> (Untyped.getPtr 0 struct))
diff --git a/gen/tests/Capnp/Gen/Generics/Pure.hs b/gen/tests/Capnp/Gen/Generics/Pure.hs
new file mode 100644
--- /dev/null
+++ b/gen/tests/Capnp/Gen/Generics/Pure.hs
@@ -0,0 +1,815 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE FunctionalDependencies #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE UndecidableInstances #-}
+{-# OPTIONS_GHC -Wno-unused-imports #-}
+{-# OPTIONS_GHC -Wno-dodgy-exports #-}
+{-# OPTIONS_GHC -Wno-unused-matches #-}
+{-# OPTIONS_GHC -Wno-orphans #-}
+module Capnp.Gen.Generics.Pure(Maybe(..)
+                              ,Either(..)
+                              ,Pair(..)
+                              ,Nested(..)
+                              ,Nested'SomeStruct(..)
+                              ,Nested'SomeInterface(..)
+                              ,Nested'SomeInterface'server_(..)
+                              ,export_Nested'SomeInterface
+                              ,Nested'SomeInterface'method'params(..)
+                              ,Nested'SomeInterface'method'results(..)
+                              ,Specialized(..)
+                              ,HasGroup(..)
+                              ,HasGroup'theGroup(..)) where
+import qualified Capnp.GenHelpers.ReExports.Data.Vector as V
+import qualified Capnp.GenHelpers.ReExports.Data.Text as T
+import qualified Capnp.GenHelpers.ReExports.Data.ByteString as BS
+import qualified Capnp.GenHelpers.ReExports.Data.Default as Default
+import qualified GHC.Generics as Generics
+import qualified Control.Monad.IO.Class as MonadIO
+import qualified Capnp.Untyped.Pure as UntypedPure
+import qualified Capnp.Untyped as Untyped
+import qualified Capnp.Message as Message
+import qualified Capnp.Classes as Classes
+import qualified Capnp.Basics.Pure as BasicsPure
+import qualified Capnp.GenHelpers.Pure as GenHelpersPure
+import qualified Capnp.Rpc.Untyped as Rpc
+import qualified Capnp.Rpc.Server as Server
+import qualified Capnp.GenHelpers.Rpc as RpcHelpers
+import qualified Capnp.GenHelpers.ReExports.Control.Concurrent.STM as STM
+import qualified Capnp.GenHelpers.ReExports.Control.Monad.STM.Class as STM
+import qualified Capnp.GenHelpers.ReExports.Supervisors as Supervisors
+import qualified Capnp.Gen.ById.Xb6421fb8e478d144
+import qualified Prelude as Std_
+import qualified Data.Word as Std_
+import qualified Data.Int as Std_
+import Prelude ((<$>), (<*>), (>>=))
+data Maybe t
+    = Maybe'nothing 
+    | Maybe'just t
+    | Maybe'unknown' Std_.Word16
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))) => (Default.Default (Maybe t)) where
+    def  = GenHelpersPure.defaultStruct
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))) => (Classes.FromStruct Message.ConstMsg (Maybe t)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))) => (Classes.Decerialize (Maybe t)) where
+    type Cerial msg (Maybe t) = (Capnp.Gen.ById.Xb6421fb8e478d144.Maybe (Classes.Cerial msg t) msg)
+    decerialize raw = (do
+        raw <- (Capnp.Gen.ById.Xb6421fb8e478d144.get_Maybe' raw)
+        case raw of
+            (Capnp.Gen.ById.Xb6421fb8e478d144.Maybe'nothing) ->
+                (Std_.pure Maybe'nothing)
+            (Capnp.Gen.ById.Xb6421fb8e478d144.Maybe'just raw) ->
+                (Maybe'just <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.Xb6421fb8e478d144.Maybe'unknown' tag) ->
+                (Std_.pure (Maybe'unknown' tag))
+        )
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Marshal s (Maybe t)) where
+    marshalInto raw_ value_ = case value_ of
+        (Maybe'nothing) ->
+            (Capnp.Gen.ById.Xb6421fb8e478d144.set_Maybe'nothing raw_)
+        (Maybe'just arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.Xb6421fb8e478d144.set_Maybe'just raw_))
+        (Maybe'unknown' tag) ->
+            (Capnp.Gen.ById.Xb6421fb8e478d144.set_Maybe'unknown' raw_ tag)
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (Maybe t))
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (Maybe t))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (Maybe t)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Maybe t))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Maybe t)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Maybe t))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Maybe t)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Maybe t))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data Either a b
+    = Either'left a
+    | Either'right b
+    | Either'unknown' Std_.Word16
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance ((Classes.Decerialize a)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg a))
+         ,(Classes.Decerialize b)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg b))) => (Default.Default (Either a b)) where
+    def  = GenHelpersPure.defaultStruct
+instance ((Classes.Decerialize a)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg a))
+         ,(Classes.Decerialize b)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg b))) => (Classes.FromStruct Message.ConstMsg (Either a b)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance ((Classes.Decerialize a)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg a))
+         ,(Classes.Decerialize b)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg b))) => (Classes.Decerialize (Either a b)) where
+    type Cerial msg (Either a b) = (Capnp.Gen.ById.Xb6421fb8e478d144.Either (Classes.Cerial msg a) (Classes.Cerial msg b) msg)
+    decerialize raw = (do
+        raw <- (Capnp.Gen.ById.Xb6421fb8e478d144.get_Either' raw)
+        case raw of
+            (Capnp.Gen.ById.Xb6421fb8e478d144.Either'left raw) ->
+                (Either'left <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.Xb6421fb8e478d144.Either'right raw) ->
+                (Either'right <$> (Classes.decerialize raw))
+            (Capnp.Gen.ById.Xb6421fb8e478d144.Either'unknown' tag) ->
+                (Std_.pure (Either'unknown' tag))
+        )
+instance ((Classes.Decerialize a)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg a))
+         ,(Classes.Decerialize b)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg b))
+         ,(Classes.Cerialize s a)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) a))
+         ,(Classes.Cerialize s b)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) b))) => (Classes.Marshal s (Either a b)) where
+    marshalInto raw_ value_ = case value_ of
+        (Either'left arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.Xb6421fb8e478d144.set_Either'left raw_))
+        (Either'right arg_) ->
+            ((Classes.cerialize (Untyped.message raw_) arg_) >>= (Capnp.Gen.ById.Xb6421fb8e478d144.set_Either'right raw_))
+        (Either'unknown' tag) ->
+            (Capnp.Gen.ById.Xb6421fb8e478d144.set_Either'unknown' raw_ tag)
+instance ((Classes.Decerialize a)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg a))
+         ,(Classes.Decerialize b)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg b))
+         ,(Classes.Cerialize s a)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) a))
+         ,(Classes.Cerialize s b)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) b))) => (Classes.Cerialize s (Either a b))
+instance ((Classes.Decerialize a)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg a))
+         ,(Classes.Decerialize b)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg b))
+         ,(Classes.Cerialize s a)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) a))
+         ,(Classes.Cerialize s b)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) b))) => (Classes.Cerialize s (V.Vector (Either a b))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance ((Classes.Decerialize a)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg a))
+         ,(Classes.Decerialize b)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg b))
+         ,(Classes.Cerialize s a)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) a))
+         ,(Classes.Cerialize s b)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) b))) => (Classes.Cerialize s (V.Vector (V.Vector (Either a b)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize a)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg a))
+         ,(Classes.Decerialize b)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg b))
+         ,(Classes.Cerialize s a)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) a))
+         ,(Classes.Cerialize s b)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) b))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Either a b))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize a)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg a))
+         ,(Classes.Decerialize b)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg b))
+         ,(Classes.Cerialize s a)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) a))
+         ,(Classes.Cerialize s b)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) b))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Either a b)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize a)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg a))
+         ,(Classes.Decerialize b)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg b))
+         ,(Classes.Cerialize s a)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) a))
+         ,(Classes.Cerialize s b)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) b))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Either a b))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize a)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg a))
+         ,(Classes.Decerialize b)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg b))
+         ,(Classes.Cerialize s a)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) a))
+         ,(Classes.Cerialize s b)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) b))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Either a b)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize a)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg a))
+         ,(Classes.Decerialize b)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg b))
+         ,(Classes.Cerialize s a)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) a))
+         ,(Classes.Cerialize s b)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) b))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Either a b))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data Pair a b
+    = Pair 
+        {fst :: a,snd :: b}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance ((Classes.Decerialize a)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg a))
+         ,(Classes.Decerialize b)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg b))) => (Default.Default (Pair a b)) where
+    def  = GenHelpersPure.defaultStruct
+instance ((Classes.Decerialize a)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg a))
+         ,(Classes.Decerialize b)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg b))) => (Classes.FromStruct Message.ConstMsg (Pair a b)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance ((Classes.Decerialize a)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg a))
+         ,(Classes.Decerialize b)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg b))) => (Classes.Decerialize (Pair a b)) where
+    type Cerial msg (Pair a b) = (Capnp.Gen.ById.Xb6421fb8e478d144.Pair (Classes.Cerial msg a) (Classes.Cerial msg b) msg)
+    decerialize raw = (Pair <$> ((Capnp.Gen.ById.Xb6421fb8e478d144.get_Pair'fst raw) >>= Classes.decerialize)
+                            <*> ((Capnp.Gen.ById.Xb6421fb8e478d144.get_Pair'snd raw) >>= Classes.decerialize))
+instance ((Classes.Decerialize a)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg a))
+         ,(Classes.Decerialize b)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg b))
+         ,(Classes.Cerialize s a)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) a))
+         ,(Classes.Cerialize s b)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) b))) => (Classes.Marshal s (Pair a b)) where
+    marshalInto raw_ value_ = case value_ of
+        Pair{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) fst) >>= (Capnp.Gen.ById.Xb6421fb8e478d144.set_Pair'fst raw_))
+                ((Classes.cerialize (Untyped.message raw_) snd) >>= (Capnp.Gen.ById.Xb6421fb8e478d144.set_Pair'snd raw_))
+                (Std_.pure ())
+                )
+instance ((Classes.Decerialize a)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg a))
+         ,(Classes.Decerialize b)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg b))
+         ,(Classes.Cerialize s a)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) a))
+         ,(Classes.Cerialize s b)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) b))) => (Classes.Cerialize s (Pair a b))
+instance ((Classes.Decerialize a)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg a))
+         ,(Classes.Decerialize b)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg b))
+         ,(Classes.Cerialize s a)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) a))
+         ,(Classes.Cerialize s b)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) b))) => (Classes.Cerialize s (V.Vector (Pair a b))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance ((Classes.Decerialize a)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg a))
+         ,(Classes.Decerialize b)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg b))
+         ,(Classes.Cerialize s a)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) a))
+         ,(Classes.Cerialize s b)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) b))) => (Classes.Cerialize s (V.Vector (V.Vector (Pair a b)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize a)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg a))
+         ,(Classes.Decerialize b)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg b))
+         ,(Classes.Cerialize s a)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) a))
+         ,(Classes.Cerialize s b)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) b))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Pair a b))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize a)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg a))
+         ,(Classes.Decerialize b)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg b))
+         ,(Classes.Cerialize s a)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) a))
+         ,(Classes.Cerialize s b)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) b))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Pair a b)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize a)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg a))
+         ,(Classes.Decerialize b)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg b))
+         ,(Classes.Cerialize s a)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) a))
+         ,(Classes.Cerialize s b)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) b))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Pair a b))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize a)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg a))
+         ,(Classes.Decerialize b)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg b))
+         ,(Classes.Cerialize s a)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) a))
+         ,(Classes.Cerialize s b)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) b))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Pair a b)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize a)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg a))
+         ,(Classes.Decerialize b)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg b))
+         ,(Classes.Cerialize s a)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) a))
+         ,(Classes.Cerialize s b)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) b))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Pair a b))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data Nested t
+    = Nested 
+        {}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))) => (Default.Default (Nested t)) where
+    def  = GenHelpersPure.defaultStruct
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))) => (Classes.FromStruct Message.ConstMsg (Nested t)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))) => (Classes.Decerialize (Nested t)) where
+    type Cerial msg (Nested t) = (Capnp.Gen.ById.Xb6421fb8e478d144.Nested (Classes.Cerial msg t) msg)
+    decerialize raw = (Std_.pure Nested)
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Marshal s (Nested t)) where
+    marshalInto raw_ value_ = case value_ of
+        (Nested) ->
+            (do
+                (Std_.pure ())
+                )
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (Nested t))
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (Nested t))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (Nested t)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Nested t))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Nested t)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Nested t))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Nested t)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Nested t))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data Nested'SomeStruct t
+    = Nested'SomeStruct 
+        {value :: t}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))) => (Default.Default (Nested'SomeStruct t)) where
+    def  = GenHelpersPure.defaultStruct
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))) => (Classes.FromStruct Message.ConstMsg (Nested'SomeStruct t)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))) => (Classes.Decerialize (Nested'SomeStruct t)) where
+    type Cerial msg (Nested'SomeStruct t) = (Capnp.Gen.ById.Xb6421fb8e478d144.Nested'SomeStruct (Classes.Cerial msg t) msg)
+    decerialize raw = (Nested'SomeStruct <$> ((Capnp.Gen.ById.Xb6421fb8e478d144.get_Nested'SomeStruct'value raw) >>= Classes.decerialize))
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Marshal s (Nested'SomeStruct t)) where
+    marshalInto raw_ value_ = case value_ of
+        Nested'SomeStruct{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) value) >>= (Capnp.Gen.ById.Xb6421fb8e478d144.set_Nested'SomeStruct'value raw_))
+                (Std_.pure ())
+                )
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (Nested'SomeStruct t))
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (Nested'SomeStruct t))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (Nested'SomeStruct t)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Nested'SomeStruct t))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Nested'SomeStruct t)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Nested'SomeStruct t))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Nested'SomeStruct t)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Nested'SomeStruct t))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+newtype Nested'SomeInterface t
+    = Nested'SomeInterface Message.Client
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+class ((MonadIO.MonadIO m)
+      ,(Server.Server m cap)) => (Nested'SomeInterface'server_ m cap t) | cap -> t where
+    {-# MINIMAL nested'SomeInterface'method #-}
+    nested'SomeInterface'method :: cap -> (Server.MethodHandler m (Nested'SomeInterface'method'params t) (Nested'SomeInterface'method'results t))
+    nested'SomeInterface'method _ = Server.methodUnimplemented
+export_Nested'SomeInterface :: ((STM.MonadSTM m)
+                               ,(Nested'SomeInterface'server_ Std_.IO cap t)) => Supervisors.Supervisor -> cap -> (m (Nested'SomeInterface t))
+export_Nested'SomeInterface sup_ server_ = (STM.liftSTM (Nested'SomeInterface <$> (Rpc.export sup_ Server.ServerOps{handleCast = (Server.unwrap server_)
+                                                                                                                   ,handleStop = (Server.shutdown server_)
+                                                                                                                   ,handleCall = (\interfaceId_ methodId_ -> case interfaceId_ of
+                                                                                                                       17400383877992806407 ->
+                                                                                                                           case methodId_ of
+                                                                                                                               0 ->
+                                                                                                                                   (Server.toUntypedHandler (nested'SomeInterface'method server_))
+                                                                                                                               _ ->
+                                                                                                                                   Server.methodUnimplemented
+                                                                                                                       _ ->
+                                                                                                                           Server.methodUnimplemented)})))
+instance (Rpc.IsClient (Nested'SomeInterface t)) where
+    fromClient  = Nested'SomeInterface
+    toClient (Nested'SomeInterface client) = client
+instance (Classes.FromPtr msg (Nested'SomeInterface t)) where
+    fromPtr  = RpcHelpers.isClientFromPtr
+instance (Classes.ToPtr s (Nested'SomeInterface t)) where
+    toPtr  = RpcHelpers.isClientToPtr
+instance (Classes.Decerialize (Nested'SomeInterface t)) where
+    type Cerial msg (Nested'SomeInterface t) = (Capnp.Gen.ById.Xb6421fb8e478d144.Nested'SomeInterface (Classes.Cerial msg t) msg)
+    decerialize (Capnp.Gen.ById.Xb6421fb8e478d144.Nested'SomeInterface'newtype_ maybeCap) = case maybeCap of
+        (Std_.Nothing) ->
+            (Std_.pure (Nested'SomeInterface Message.nullClient))
+        (Std_.Just cap) ->
+            (Nested'SomeInterface <$> (Untyped.getClient cap))
+instance (Classes.Cerialize s (Nested'SomeInterface t)) where
+    cerialize msg (Nested'SomeInterface client) = (Capnp.Gen.ById.Xb6421fb8e478d144.Nested'SomeInterface'newtype_ <$> (Std_.Just <$> (Untyped.appendCap msg client)))
+instance (Server.Server Std_.IO (Nested'SomeInterface t))
+instance (Nested'SomeInterface'server_ Std_.IO (Nested'SomeInterface t) t) where
+    nested'SomeInterface'method (Nested'SomeInterface client) = (Rpc.clientMethodHandler 17400383877992806407 0 client)
+data Nested'SomeInterface'method'params t
+    = Nested'SomeInterface'method'params 
+        {arg :: t}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))) => (Default.Default (Nested'SomeInterface'method'params t)) where
+    def  = GenHelpersPure.defaultStruct
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))) => (Classes.FromStruct Message.ConstMsg (Nested'SomeInterface'method'params t)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))) => (Classes.Decerialize (Nested'SomeInterface'method'params t)) where
+    type Cerial msg (Nested'SomeInterface'method'params t) = (Capnp.Gen.ById.Xb6421fb8e478d144.Nested'SomeInterface'method'params (Classes.Cerial msg t) msg)
+    decerialize raw = (Nested'SomeInterface'method'params <$> ((Capnp.Gen.ById.Xb6421fb8e478d144.get_Nested'SomeInterface'method'params'arg raw) >>= Classes.decerialize))
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Marshal s (Nested'SomeInterface'method'params t)) where
+    marshalInto raw_ value_ = case value_ of
+        Nested'SomeInterface'method'params{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) arg) >>= (Capnp.Gen.ById.Xb6421fb8e478d144.set_Nested'SomeInterface'method'params'arg raw_))
+                (Std_.pure ())
+                )
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (Nested'SomeInterface'method'params t))
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (Nested'SomeInterface'method'params t))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (Nested'SomeInterface'method'params t)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Nested'SomeInterface'method'params t))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Nested'SomeInterface'method'params t)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Nested'SomeInterface'method'params t))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Nested'SomeInterface'method'params t)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Nested'SomeInterface'method'params t))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data Nested'SomeInterface'method'results t
+    = Nested'SomeInterface'method'results 
+        {result :: t}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))) => (Default.Default (Nested'SomeInterface'method'results t)) where
+    def  = GenHelpersPure.defaultStruct
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))) => (Classes.FromStruct Message.ConstMsg (Nested'SomeInterface'method'results t)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))) => (Classes.Decerialize (Nested'SomeInterface'method'results t)) where
+    type Cerial msg (Nested'SomeInterface'method'results t) = (Capnp.Gen.ById.Xb6421fb8e478d144.Nested'SomeInterface'method'results (Classes.Cerial msg t) msg)
+    decerialize raw = (Nested'SomeInterface'method'results <$> ((Capnp.Gen.ById.Xb6421fb8e478d144.get_Nested'SomeInterface'method'results'result raw) >>= Classes.decerialize))
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Marshal s (Nested'SomeInterface'method'results t)) where
+    marshalInto raw_ value_ = case value_ of
+        Nested'SomeInterface'method'results{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) result) >>= (Capnp.Gen.ById.Xb6421fb8e478d144.set_Nested'SomeInterface'method'results'result raw_))
+                (Std_.pure ())
+                )
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (Nested'SomeInterface'method'results t))
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (Nested'SomeInterface'method'results t))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (Nested'SomeInterface'method'results t)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Nested'SomeInterface'method'results t))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Nested'SomeInterface'method'results t)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Nested'SomeInterface'method'results t))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Nested'SomeInterface'method'results t)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Nested'SomeInterface'method'results t))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data Specialized t
+    = Specialized 
+        {either :: (Either T.Text t)
+        ,nestedStruct :: (Nested'SomeStruct BS.ByteString)}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))) => (Default.Default (Specialized t)) where
+    def  = GenHelpersPure.defaultStruct
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))) => (Classes.FromStruct Message.ConstMsg (Specialized t)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))) => (Classes.Decerialize (Specialized t)) where
+    type Cerial msg (Specialized t) = (Capnp.Gen.ById.Xb6421fb8e478d144.Specialized (Classes.Cerial msg t) msg)
+    decerialize raw = (Specialized <$> ((Capnp.Gen.ById.Xb6421fb8e478d144.get_Specialized'either raw) >>= Classes.decerialize)
+                                   <*> ((Capnp.Gen.ById.Xb6421fb8e478d144.get_Specialized'nestedStruct raw) >>= Classes.decerialize))
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Marshal s (Specialized t)) where
+    marshalInto raw_ value_ = case value_ of
+        Specialized{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) either) >>= (Capnp.Gen.ById.Xb6421fb8e478d144.set_Specialized'either raw_))
+                ((Classes.cerialize (Untyped.message raw_) nestedStruct) >>= (Capnp.Gen.ById.Xb6421fb8e478d144.set_Specialized'nestedStruct raw_))
+                (Std_.pure ())
+                )
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (Specialized t))
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (Specialized t))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (Specialized t)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (Specialized t))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (Specialized t)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Specialized t))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Specialized t)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (Specialized t))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data HasGroup t
+    = HasGroup 
+        {theGroup :: (HasGroup'theGroup t)}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))) => (Default.Default (HasGroup t)) where
+    def  = GenHelpersPure.defaultStruct
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))) => (Classes.FromStruct Message.ConstMsg (HasGroup t)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))) => (Classes.Decerialize (HasGroup t)) where
+    type Cerial msg (HasGroup t) = (Capnp.Gen.ById.Xb6421fb8e478d144.HasGroup (Classes.Cerial msg t) msg)
+    decerialize raw = (HasGroup <$> ((Capnp.Gen.ById.Xb6421fb8e478d144.get_HasGroup'theGroup raw) >>= Classes.decerialize))
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Marshal s (HasGroup t)) where
+    marshalInto raw_ value_ = case value_ of
+        HasGroup{..} ->
+            (do
+                (do
+                    raw_ <- (Capnp.Gen.ById.Xb6421fb8e478d144.get_HasGroup'theGroup raw_)
+                    (Classes.marshalInto raw_ theGroup)
+                    )
+                (Std_.pure ())
+                )
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (HasGroup t))
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (HasGroup t))) where
+    cerialize  = GenHelpersPure.cerializeCompositeVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (HasGroup t)))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (HasGroup t))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (HasGroup t)))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (HasGroup t))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (HasGroup t)))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector (HasGroup t))))))))) where
+    cerialize  = GenHelpersPure.cerializeBasicVec
+data HasGroup'theGroup t
+    = HasGroup'theGroup' 
+        {value :: t}
+    deriving(Std_.Show
+            ,Std_.Eq
+            ,Generics.Generic)
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))) => (Default.Default (HasGroup'theGroup t)) where
+    def  = GenHelpersPure.defaultStruct
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))) => (Classes.FromStruct Message.ConstMsg (HasGroup'theGroup t)) where
+    fromStruct struct = ((Classes.fromStruct struct) >>= Classes.decerialize)
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))) => (Classes.Decerialize (HasGroup'theGroup t)) where
+    type Cerial msg (HasGroup'theGroup t) = (Capnp.Gen.ById.Xb6421fb8e478d144.HasGroup'theGroup (Classes.Cerial msg t) msg)
+    decerialize raw = (HasGroup'theGroup' <$> ((Capnp.Gen.ById.Xb6421fb8e478d144.get_HasGroup'theGroup'value raw) >>= Classes.decerialize))
+instance ((Classes.Decerialize t)
+         ,(Classes.FromPtr Message.ConstMsg (Classes.Cerial Message.ConstMsg t))
+         ,(Classes.Cerialize s t)
+         ,(Classes.ToPtr s (Classes.Cerial (Message.MutMsg s) t))) => (Classes.Marshal s (HasGroup'theGroup t)) where
+    marshalInto raw_ value_ = case value_ of
+        HasGroup'theGroup'{..} ->
+            (do
+                ((Classes.cerialize (Untyped.message raw_) value) >>= (Capnp.Gen.ById.Xb6421fb8e478d144.set_HasGroup'theGroup'value raw_))
+                (Std_.pure ())
+                )
diff --git a/lib/Capnp.hs b/lib/Capnp.hs
--- a/lib/Capnp.hs
+++ b/lib/Capnp.hs
@@ -45,6 +45,8 @@
     , Message.WriteCtx
     , Untyped.ReadCtx
     , Untyped.RWCtx
+    , Classes.ReadParam
+    , Classes.WriteParam
 
     -- * Converting between messages, Cap'N Proto values, and raw bytes
     , module Capnp.Convert
diff --git a/lib/Capnp/Basics/Pure.hs b/lib/Capnp/Basics/Pure.hs
--- a/lib/Capnp/Basics/Pure.hs
+++ b/lib/Capnp/Basics/Pure.hs
@@ -49,12 +49,12 @@
     type Cerial msg Data = Basics.Data msg
     decerialize (Basics.Data list) = rawBytes list
 
-instance Marshal Data where
+instance Marshal s Data where
     marshalInto (Basics.Data list) bytes =
         forM_ [0..BS.length bytes - 1] $ \i ->
             Untyped.setIndex (BS.index bytes i) i list
 
-instance Cerialize Data where
+instance Cerialize s Data where
     cerialize msg bytes = do
         dest <- Basics.newData msg (BS.length bytes)
         marshalInto dest bytes
@@ -68,10 +68,10 @@
                 Left e    -> throwM $ InvalidUtf8Error e
                 Right txt -> pure txt
 
-instance Marshal Text where
+instance Marshal s Text where
     marshalInto dest text = marshalTextBytes (encodeUtf8 text) dest
 
-instance Cerialize Text where
+instance Cerialize s Text where
     cerialize msg text = do
         let bytes = encodeUtf8 text
         ret <- Basics.newText msg (BS.length bytes)
@@ -83,13 +83,13 @@
     buffer <- Basics.textBuffer text
     marshalInto (Basics.Data buffer) bytes
 
-instance Cerialize (V.Vector Text) where cerialize = cerializeBasicVec
-instance Cerialize (V.Vector Data) where cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector Text)) where cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector Data)) where cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector Text))) where cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector Data))) where cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Text)))) where cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector Data)))) where cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Text))))) where cerialize = cerializeBasicVec
-instance Cerialize (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Data))))) where cerialize = cerializeBasicVec
+instance Cerialize s (V.Vector Text) where cerialize = cerializeBasicVec
+instance Cerialize s (V.Vector Data) where cerialize = cerializeBasicVec
+instance Cerialize s (V.Vector (V.Vector Text)) where cerialize = cerializeBasicVec
+instance Cerialize s (V.Vector (V.Vector Data)) where cerialize = cerializeBasicVec
+instance Cerialize s (V.Vector (V.Vector (V.Vector Text))) where cerialize = cerializeBasicVec
+instance Cerialize s (V.Vector (V.Vector (V.Vector Data))) where cerialize = cerializeBasicVec
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector Text)))) where cerialize = cerializeBasicVec
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector Data)))) where cerialize = cerializeBasicVec
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Text))))) where cerialize = cerializeBasicVec
+instance Cerialize s (V.Vector (V.Vector (V.Vector (V.Vector (V.Vector Data))))) where cerialize = cerializeBasicVec
diff --git a/lib/Capnp/Classes.hs b/lib/Capnp/Classes.hs
--- a/lib/Capnp/Classes.hs
+++ b/lib/Capnp/Classes.hs
@@ -1,9 +1,10 @@
-{-# LANGUAGE DefaultSignatures     #-}
-{-# LANGUAGE FlexibleContexts      #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE TypeFamilies          #-}
-{-# LANGUAGE UndecidableInstances  #-}
+{-# LANGUAGE ConstraintKinds        #-}
+{-# LANGUAGE DefaultSignatures      #-}
+{-# LANGUAGE FlexibleContexts       #-}
+{-# LANGUAGE FlexibleInstances      #-}
+{-# LANGUAGE FunctionalDependencies #-}
+{-# LANGUAGE TypeFamilies           #-}
+{-# LANGUAGE UndecidableInstances   #-}
 {- |
 Module: Capnp.Classes
 Description: Misc. type classes
@@ -33,6 +34,8 @@
     , Decerialize(..)
     , cerializeBasicVec
     , cerializeCompositeVec
+    , ReadParam
+    , WriteParam
     ) where
 
 import Prelude hiding (length)
@@ -54,6 +57,20 @@
 
 import qualified Data.Vector as V
 
+-- | Type alias for the constraints needed for 'a' to be used as a capnp
+-- type parameter for pure modules, when reading.
+type ReadParam a =
+    ( Decerialize a
+    , FromPtr M.ConstMsg (Cerial M.ConstMsg a)
+    )
+-- | Type alias for the constraints needed for 'a' to be used as a capnp
+-- type parameter for pure modules, when writing with state token 's'.
+type WriteParam s a =
+    ( Cerialize s a
+    , ToPtr s (Cerial (M.MutMsg s) a)
+    , FromPtr (M.MutMsg s) (Cerial (M.MutMsg s) a)
+    )
+
 -- | Types that can be converted to and from a 64-bit word.
 --
 -- Anything that goes in the data section of a struct will have
@@ -100,7 +117,7 @@
 --
 -- This applies to typed structs, but not e.g. lists, because the length
 -- must be known to allocate a list.
-class Allocate s e where
+class Allocate s e | e -> s where
     -- @'new' msg@ allocates a new value of type @e@ inside @msg@.
     new :: M.WriteCtx m s => M.MutMsg s -> m e
 
@@ -119,7 +136,7 @@
     decerialize :: U.ReadCtx m M.ConstMsg => Cerial M.ConstMsg a -> m a
 
 -- | Types which may be marshaled into a pre-allocated object in a message.
-class Decerialize a => Marshal a where
+class Decerialize a => Marshal s a where
 
     -- | Marshal a value into the pre-allocated object inside the message.
     --
@@ -129,12 +146,12 @@
     marshalInto :: U.RWCtx m s => Cerial (M.MutMsg s) a -> a -> m ()
 
 -- | Types which may be inserted into a message.
-class Decerialize a => Cerialize a where
+class Decerialize a => Cerialize s a where
 
     -- | Cerialize a value into the supplied message, returning the result.
     cerialize :: U.RWCtx m s => M.MutMsg s -> a -> m (Cerial (M.MutMsg s) a)
 
-    default cerialize :: (U.RWCtx m s, Marshal a, Allocate s (Cerial (M.MutMsg s) a))
+    default cerialize :: (U.RWCtx m s, Marshal s a, Allocate s (Cerial (M.MutMsg s) a))
         => M.MutMsg s -> a -> m (Cerial (M.MutMsg s) a)
     cerialize msg value = do
         raw <- new msg
@@ -155,12 +172,12 @@
     toPtr :: M.WriteCtx m s => M.MutMsg s -> a -> m (Maybe (Ptr (M.MutMsg s)))
 
 -- | Types that can be extracted from a struct.
-class FromStruct msg a where
+class FromStruct msg a | a -> msg where
     -- | Extract a value from a struct.
     fromStruct :: ReadCtx m msg => Struct msg -> m a
 
 -- | Types that can be converted to a struct.
-class ToStruct msg a where
+class ToStruct msg a | a -> msg where
     -- | Convert a value to a struct.
     toStruct :: a -> Struct msg
 
@@ -330,7 +347,7 @@
 cerializeBasicVec ::
     ( U.RWCtx m s
     , MutListElem s (Cerial (M.MutMsg s) a)
-    , Cerialize a
+    , Cerialize s a
     )
     => M.MutMsg s
     -> V.Vector a
@@ -349,7 +366,7 @@
 cerializeCompositeVec ::
     ( U.RWCtx m s
     , MutListElem s (Cerial (M.MutMsg s) a)
-    , Marshal a
+    , Marshal s a
     )
     => M.MutMsg s
     -> V.Vector a
diff --git a/lib/Capnp/Convert.hs b/lib/Capnp/Convert.hs
--- a/lib/Capnp/Convert.hs
+++ b/lib/Capnp/Convert.hs
@@ -103,19 +103,19 @@
 lbsToValue = bsToValue . LBS.toStrict
 
 -- | Convert a value to a 'BS.Builder'.
-valueToBuilder :: (MonadLimit m, M.WriteCtx m s, Cerialize a, ToStruct (M.MutMsg s) (Cerial (M.MutMsg s) a)) => a -> m BB.Builder
+valueToBuilder :: (MonadLimit m, M.WriteCtx m s, Cerialize s a, ToStruct (M.MutMsg s) (Cerial (M.MutMsg s) a)) => a -> m BB.Builder
 valueToBuilder val = msgToBuilder <$> (valueToMsg val >>= freeze)
 
 -- | Convert a value to a strict 'BS.ByteString'.
-valueToBS :: (MonadLimit m, M.WriteCtx m s, Cerialize a, ToStruct (M.MutMsg s) (Cerial (M.MutMsg s) a)) => a -> m BS.ByteString
+valueToBS :: (MonadLimit m, M.WriteCtx m s, Cerialize s a, ToStruct (M.MutMsg s) (Cerial (M.MutMsg s) a)) => a -> m BS.ByteString
 valueToBS = fmap LBS.toStrict . valueToLBS
 
 -- | Convert a value to a lazy 'LBS.ByteString'.
-valueToLBS :: (MonadLimit m, M.WriteCtx m s, Cerialize a, ToStruct (M.MutMsg s) (Cerial (M.MutMsg s) a)) => a -> m LBS.ByteString
+valueToLBS :: (MonadLimit m, M.WriteCtx m s, Cerialize s a, ToStruct (M.MutMsg s) (Cerial (M.MutMsg s) a)) => a -> m LBS.ByteString
 valueToLBS = fmap BB.toLazyByteString . valueToBuilder
 
 -- | Convert a value to a message.
-valueToMsg :: (MonadLimit m, M.WriteCtx m s, Cerialize a, ToStruct (M.MutMsg s) (Cerial (M.MutMsg s) a)) => a -> m (M.MutMsg s)
+valueToMsg :: (MonadLimit m, M.WriteCtx m s, Cerialize s a, ToStruct (M.MutMsg s) (Cerial (M.MutMsg s) a)) => a -> m (M.MutMsg s)
 valueToMsg val = do
     msg <- M.newMessage Nothing
     ret <- cerialize msg val
diff --git a/lib/Capnp/GenHelpers/Pure.hs b/lib/Capnp/GenHelpers/Pure.hs
--- a/lib/Capnp/GenHelpers/Pure.hs
+++ b/lib/Capnp/GenHelpers/Pure.hs
@@ -48,7 +48,7 @@
 convertValue ::
     ( U.RWCtx m s
     , M.Message m M.ConstMsg
-    , C.Cerialize a
+    , C.Cerialize s a
     , C.ToStruct (M.MutMsg s) (C.Cerial (M.MutMsg s) a)
     , C.Decerialize b
     , C.FromStruct M.ConstMsg (C.Cerial M.ConstMsg b)
diff --git a/lib/Capnp/IO.hs b/lib/Capnp/IO.hs
--- a/lib/Capnp/IO.hs
+++ b/lib/Capnp/IO.hs
@@ -98,7 +98,7 @@
 -- | @'hPutValue' handle value@ writes @value@ to handle, as the root object of
 -- a message. If it throws an exception, it will be an 'IOError' raised by the
 -- underlying IO libraries.
-hPutValue :: (Cerialize a, ToStruct (M.MutMsg RealWorld) (Cerial (M.MutMsg RealWorld) a))
+hPutValue :: (Cerialize RealWorld a, ToStruct (M.MutMsg RealWorld) (Cerial (M.MutMsg RealWorld) a))
     => Handle -> a -> IO ()
 hPutValue handle value = do
     msg <- M.newMessage Nothing
@@ -108,7 +108,7 @@
     M.hPutMsg handle constMsg
 
 -- | 'putValue' is equivalent to @'hPutValue' 'stdin'@
-putValue :: (Cerialize a, ToStruct (M.MutMsg RealWorld) (Cerial (M.MutMsg RealWorld) a))
+putValue :: (Cerialize RealWorld a, ToStruct (M.MutMsg RealWorld) (Cerial (M.MutMsg RealWorld) a))
     => a -> IO ()
 putValue = hPutValue stdout
 
@@ -117,7 +117,7 @@
 sPutMsg socket = sendLazy socket . msgToLBS
 
 -- | Like 'hPutValue', except that it takes a 'Socket' instead of a 'Handle'.
-sPutValue :: (Cerialize a, ToStruct (M.MutMsg RealWorld) (Cerial (M.MutMsg RealWorld) a))
+sPutValue :: (Cerialize RealWorld a, ToStruct (M.MutMsg RealWorld) (Cerial (M.MutMsg RealWorld) a))
     => Socket -> a -> IO ()
 sPutValue socket value = do
     lbs <- evalLimitT maxBound $ valueToLBS value
diff --git a/lib/Capnp/Rpc.hs b/lib/Capnp/Rpc.hs
--- a/lib/Capnp/Rpc.hs
+++ b/lib/Capnp/Rpc.hs
@@ -37,6 +37,8 @@
     , Client
     , IsClient(..)
     , newPromiseClient
+    , waitClient
+
     -- ** Reflection
     , Untyped.unwrapServer
 
@@ -63,6 +65,12 @@
 import Capnp.Rpc.Transport
     (Transport (..), handleTransport, socketTransport, tracingTransport)
 import Capnp.Rpc.Untyped
-    (Client, ConnConfig (..), IsClient (..), handleConn, newPromiseClient)
+    ( Client
+    , ConnConfig (..)
+    , IsClient (..)
+    , handleConn
+    , newPromiseClient
+    , waitClient
+    )
 
 import qualified Capnp.Rpc.Untyped as Untyped
diff --git a/lib/Capnp/Rpc/Invoke.hs b/lib/Capnp/Rpc/Invoke.hs
--- a/lib/Capnp/Rpc/Invoke.hs
+++ b/lib/Capnp/Rpc/Invoke.hs
@@ -72,7 +72,7 @@
     , Decerialize r
     , ToStruct M.ConstMsg (Cerial M.ConstMsg p)
     , ToStruct (M.MutMsg (PrimState m)) (Cerial (M.MutMsg (PrimState m)) p)
-    , Cerialize p
+    , Cerialize (PrimState m) p
     , FromPtr M.ConstMsg (Cerial M.ConstMsg r)
     )
 
diff --git a/lib/Capnp/Rpc/Server.hs b/lib/Capnp/Rpc/Server.hs
--- a/lib/Capnp/Rpc/Server.hs
+++ b/lib/Capnp/Rpc/Server.hs
@@ -107,7 +107,7 @@
     , s ~ PrimState m
     , Decerialize p
     , FromPtr ConstMsg (Cerial ConstMsg p)
-    , Cerialize r
+    , Cerialize s r
     , ToStruct (MutMsg s) (Cerial (MutMsg s) r)
     ) =>
     (cap -> p -> m r)
diff --git a/lib/Capnp/Rpc/Untyped.hs b/lib/Capnp/Rpc/Untyped.hs
--- a/lib/Capnp/Rpc/Untyped.hs
+++ b/lib/Capnp/Rpc/Untyped.hs
@@ -43,6 +43,9 @@
     -- * Unwrapping local clients
     , unwrapServer
 
+    -- * Waiting for resolution
+    , waitClient
+
     -- * Errors
     , RpcError(..)
     , R.Exception(..)
@@ -1017,6 +1020,30 @@
 unwrapServer c = case toClient c of
     Client (Just LocalClient { unwrapper }) -> unwrapper
     _                                       -> Nothing
+
+
+-- | Wait for the client to be fully resolved, and then return a client
+-- pointing directly to the destination.
+--
+-- If the argument is null, a local client, or a (permanent) remote client,
+-- this returns the argument immediately. If the argument is a promise client,
+-- then this waits for the promise to resolve and returns the result of
+-- the resolution. If the promise resolves to *another* promise, then this waits
+-- for that promise to also resolve.
+--
+-- If the promise is rejected, then this throws the corresponding exception.
+waitClient :: (IsClient c, MonadSTM m) => c -> m c
+waitClient client = liftSTM $ case toClient client of
+    Client Nothing -> pure client
+    Client (Just LocalClient{}) -> pure client
+    Client (Just ImportClient{}) -> pure client
+    Client (Just PromiseClient{pState}) -> do
+        state <- readTVar pState
+        case state of
+            Ready{target} -> fromClient <$> waitClient target
+            Error e       -> throwSTM e
+            Pending{}     -> retry
+            Embargo{}     -> retry
 
 
 -- | Spawn a local server with its lifetime bound to the supervisor,
diff --git a/lib/Capnp/Untyped/Pure.hs b/lib/Capnp/Untyped/Pure.hs
--- a/lib/Capnp/Untyped/Pure.hs
+++ b/lib/Capnp/Untyped/Pure.hs
@@ -135,7 +135,7 @@
 instance FromStruct M.ConstMsg Struct where
     fromStruct = decerialize
 
-instance Marshal Struct where
+instance Marshal s Struct where
     marshalInto raw (Struct (Slice dataSec) (Slice ptrSec)) = do
         forM_ [0..V.length dataSec - 1] $ \i ->
             U.setData (dataSec V.! i) i raw
@@ -143,7 +143,7 @@
             ptr <- cerialize (U.message raw) (ptrSec V.! i)
             U.setPtr ptr i raw
 
-instance Cerialize Struct where
+instance Cerialize s Struct where
     cerialize msg struct@(Struct (Slice dataSec) (Slice ptrSec)) = do
         raw <- U.allocStruct
             msg
@@ -161,7 +161,7 @@
         U.PtrStruct struct -> PtrStruct <$> decerialize struct
         U.PtrList list     -> PtrList <$> decerialize list
 
-instance Cerialize (Maybe Ptr) where
+instance Cerialize s (Maybe Ptr) where
     cerialize _ Nothing                     = pure Nothing
     cerialize msg (Just (PtrStruct struct)) = cerialize msg struct >>= toPtr msg
     cerialize msg (Just (PtrList     list)) = Just . U.PtrList <$> cerialize msg list
@@ -192,7 +192,7 @@
     decerialize (U.ListPtr l)    = ListPtr <$> decerializeListOf l
     decerialize (U.ListStruct l) = ListStruct <$> decerializeListOf l
 
-instance Cerialize List where
+instance Cerialize s List where
     cerialize msg (List0   l) = U.List0  <$> U.allocList0 msg (length l)
     cerialize msg (List1   l) = U.List1  <$> cerializeListOfWord (U.allocList1  msg) l
     cerialize msg (List8   l) = U.List8  <$> cerializeListOfWord (U.allocList8  msg) l
diff --git a/scripts/gen-basic-instances.hs b/scripts/gen-basic-instances.hs
--- a/scripts/gen-basic-instances.hs
+++ b/scripts/gen-basic-instances.hs
@@ -49,11 +49,11 @@
     , "instance Decerialize ", typed, " where\n"
     , "    type Cerial msg ", typed, " = ", typed, "\n"
     , "    decerialize val = pure val\n"
-    , "instance Cerialize ", typed, " where\n"
+    , "instance Cerialize s ", typed, " where\n"
     , "    cerialize _ val = pure val\n"
     ]
     ++
-    [ "instance Cerialize (V.Vector " ++  t ++ ") where\n" ++
+    [ "instance Cerialize s (V.Vector " ++  t ++ ") where\n" ++
       "    cerialize = cerializeBasicVec\n"
     | t <- take 6 $ iterate (\t -> "(V.Vector " ++ t ++ ")") typed
     ]
diff --git a/scripts/regen.sh b/scripts/regen.sh
--- a/scripts/regen.sh
+++ b/scripts/regen.sh
@@ -56,15 +56,16 @@
 		$core_inc/capnp/*.capnp \
 		$core_inc/capnp/compat/*.capnp
 
-log "Generating schema modules for aircraft.capnp (test suite)..."
+log "Generating schema modules for test suite..."
 cd "$repo_root/gen/tests"
 capnp compile \
 		-I $core_inc \
 		--src-prefix=../../tests/data/ \
 		-ohaskell \
-		../../tests/data/aircraft.capnp
+		../../tests/data/aircraft.capnp \
+		../../tests/data/generics.capnp
 
-log "Generating schema modules for echo.capnp (examples)..."
+log "Generating schema modules for examples..."
 cd "$repo_root/examples/gen/lib"
 capnp compile \
 		-I $core_inc \
diff --git a/tests/Module/Capnp/Gen/Capnp/Schema/Pure.hs b/tests/Module/Capnp/Gen/Capnp/Schema/Pure.hs
--- a/tests/Module/Capnp/Gen/Capnp/Schema/Pure.hs
+++ b/tests/Module/Capnp/Gen/Capnp/Schema/Pure.hs
@@ -65,7 +65,7 @@
         -- TODO: the size of this context is *stupid*
         ( Show a
         , Eq a
-        , Cerialize a
+        , Cerialize RealWorld a
         , FromStruct M.ConstMsg (Cerial M.ConstMsg a)
         , ToStruct (M.MutMsg RealWorld) (Cerial (M.MutMsg RealWorld) a)
         , Allocate RealWorld (Cerial (M.MutMsg RealWorld) a)
@@ -424,7 +424,7 @@
     , Eq a
     , Default a
     , FromStruct M.ConstMsg a
-    , Cerialize a
+    , Cerialize RealWorld a
     , ToStruct (M.MutMsg RealWorld) (Cerial (M.MutMsg RealWorld) a)
     ) => String -> Proxy a -> Spec
 decodeDefault typename proxy =
@@ -469,7 +469,7 @@
     ( Show a
     , Eq a
     , FromStruct M.ConstMsg a
-    , Cerialize a
+    , Cerialize RealWorld a
     , ToStruct (M.MutMsg RealWorld) (Cerial (M.MutMsg RealWorld) a)
     ) => Proxy a -> a -> Property
 prop_hGetPutInverses _proxy expected = propertyIO $ do
@@ -494,7 +494,7 @@
 prop_cerializeDecerializeInverses ::
     ( Show a
     , Eq a
-    , Cerialize a
+    , Cerialize RealWorld a
     , FromStruct M.ConstMsg (Cerial M.ConstMsg a)
     , ToStruct (M.MutMsg RealWorld) (Cerial (M.MutMsg RealWorld) a)
     , Allocate RealWorld (Cerial (M.MutMsg RealWorld) a)
