@@ -19,6 +19,8 @@ module Grenade.Layers.Merge (
19 Merge (..)
19 Merge (..)
22import Data.Singletons
24import Data.Singletons
24import Grenade.Core
26import Grenade.Core
@@ -53,3 +55,7 @@ instance (SingI i, SingI o, Layer x i o, Layer y i o) => Layer (Merge x y) i o w
53 let (x', xB) = runBackwards x xTape o
55 let (x', xB) = runBackwards x xTape o
54 (y', yB) = runBackwards y yTape o
56 (y', yB) = runBackwards y yTape o
55 in ((x', y'), xB + yB)
57 in ((x', y'), xB + yB)
59+instance (Serialize a, Serialize b) => Serialize (Merge a b) where
60+ put (Merge a b) = put a *> put b
61+ get = Merge <$> get <*> get