```
    graph(%x : Float(, ),
            %hx : Float(, ),
            %cx : Float(, ),
            %w_ih : Float(, ),
            %w_hh : Float(, ),
            %b_ih : Float(),
            %b_hh : Float()):
        %hy : Float(, ), %cy : Float(, ) = prim::DifferentiableGraph_0(%cx, %b_hh, %b_ih, %hx, %w_hh, %x, %w_ih)
        %30 : (Float(, ), Float(, )) = prim::TupleConstruct(%hy, %cy)
        return (%30)
        with prim::DifferentiableGraph_0 = graph(%13 : Float(, ),
            %29 : Float(),
            %33 : Float(),
            %40 : Float(, ),
            %43 : Float(, ),
            %45 : Float(, ),
            %48 : Float(, )):
        %49 : Float(, ) = aten::t(%48)
        %47 : Float(, ) = aten::mm(%45, %49)
        %44 : Float(, ) = aten::t(%43)
        %42 : Float(, ) = aten::mm(%40, %44)
        ...some broadcast sizes operations...