[ { "BlackBox" :
    { "name"      : "Clash.Sized.Internal.Unsigned.rotateL#"
    , "kind"      : "Declaration"
    , "type"      : "rotateL# :: KnownNat n => Unsigned n -> Int -> Unsigned n"
    , "template"  :
"// rotateL begin
logic [2*~SIZE[~TYPO]-1:0] ~GENSYM[u][0];
assign ~SYM[0] = {~ARG[1],~ARG[1]} << (~ARG[2] % ~SIZE[~TYPO]);
assign ~RESULT = ~SYM[0][2*~SIZE[~TYPO]-1 : ~SIZE[~TYPO]];
// rotateL end"
    }
  }
, { "BlackBox" :
    { "name"      : "Clash.Sized.Internal.Unsigned.rotateR#"
    , "kind"      : "Declaration"
    , "type"      : "rotateR# :: KnownNat n => Unsigned n -> Int -> Unsigned n"
    , "template"  :
"// rotateR begin
logic [2*~SIZE[~TYPO]-1:0] ~GENSYM[u][0];
assign ~SYM[0] = {~ARG[1],~ARG[1]} >> (~ARG[2] % ~SIZE[~TYPO]);
assign ~RESULT = ~SYM[0][~SIZE[~TYPO]-1 : 0];
// rotateR end"
    }
  }
]