namespace Frduino.Genlet.For_lib.Bitvec

open Frduino
open Frduino.Genlet

type Builder() =
interface Lib.Bitvec.Builder with
override __.sll (shamount, x) =
let shamount = shamount :?> CodeExpr<int>
let x = x :?> CodeExpr<int>
new CodeExpr<int>(n = $"({x.n}) << ({shamount.n})")
override __.or' (x, y) =
let x = x :?> CodeExpr<int>
let y = y :?> CodeExpr<int>
new CodeExpr<int>(n = $"({x.n}) | ({y.n})")