namespace UnityPeripherals.Lowlevel
type 't expr = 't Stdlib.Asyncseq.expr
open Stdlib.Asyncseq
module Varargs =
open Frduino.Genlet
let make2 (a: 'a expr) (b: 'b expr) =
let a = a :?> 'a CodeExpr
let b = b :?> 'b CodeExpr
a.n + ", " + b.n
let double_to_int (precision: int) (x: System.Double expr) : int expr =
let x = x :?> System.Double CodeExpr
new CodeExpr<int>(n = "(int)((" + x.n + ")*(" + precision.ToString () + "))")
open Frduino
module Stdenv =
let K = new Genlet.For_lib.Async.StdenvBuilder() :> Lib.Async.StdenvBuilder
let clock env = K.clock env
module Async =
let K = new Genlet.For_lib.Async.Builder() :> Lib.Async.Builder
let sleep clock = K.sleep clock
module Math =
module Double =
let K = new Genlet.For_lib.Math.Double.Builder() :> Lib.Math.Double.Builder
type double = System.Double
let atan x = K.atan x
let sqrt x = K.sqrt x
let add a b = K.add a b
let mul a b = K.mul a b
let div a b = K.div a b
module Syntax =
let ( +. ) a b = K.add a b
let ( *. ) a b = K.mul a b
let ( /. ) a b = K.div a b
module Int =
let K = new Genlet.For_lib.Math.Int.Builder() :> Lib.Math.Int.Builder
let add a b = K.add a b
namespace UnityPeripherals.Lowlevel
open Frduino
type wireable' = Lib.Wire.wireable'
type wireable<'t when 't :> wireable' and 't : (new : unit -> 't)> = Lib.Wire.wireable<'t>
module Wire =
open Frduino.Lib.Wire
let K = new Genlet.For_lib.Wire.Builder() :> Builder
let with_open_1<'W, 'T, 'K when wireable<'W>> f = K.with_open_1<'W, 'T, 'K> f
module Buf_write =
let with_trnms<'W when wireable<'W>> t f = K.Buf_write__with_trnms<'W> t f
let byte<'W when wireable<'W>> wr x = K.Flow__write_byte<'W> wr x
module Request_for =
let n_from<'W when wireable<'W>> n t = K.Request_for__n_from<'W> n t
namespace UnityPeripherals.Lowlevel
module Bitvec =
open Frduino
let K = new Genlet.For_lib.Bitvec.Builder() :> Lib.Bitvec.Builder
let sll shamount x = K.sll (shamount, x)
let or' x y = K.or' (x, y)
module Io =
open Frduino
let K = new Genlet.For_lib.Io.Builder() :> Lib.Io.Builder
let with_open x f = K.with_open x f
let bit_write x = K.bit_write x
let led_builtin = K.led_builtin