namespace UnityPeripherals.Lowlevel
open Frduino
open Stdlib.Asyncseq
module Unsafe =
let K = new Genlet.For_lib.Unsafe.Builder() :> Lib.Unsafe.Builder
open Frduino.Lib.Unsafe
let cast<'Caster, 'T, 'a when 'Caster :> Caster<'T>> (caster: 'Caster) (x: 'a expr): 'T expr = K.cast<'Caster, 'T, 'a> caster x
module Double =
let K = new Genlet.For_lib.Double.Builder() :> Lib.Double.Builder
let return_ a = K.return_ a
open Frduino.Lib.Unsafe
let from_any<'Caster, 'T, 'a when 'Caster :> Caster<'T>> (x: 'a expr) = K.from_any<'Caster, 'T, 'a> x
module Caster =
type K() =
interface Lib.Unsafe.Caster<System.Double> with
override __.from_any<'a> (x: 'a expr) =
Double.from_any<K, System.Double, 'a> x
let double = new K() :> Lib.Unsafe.Caster<System.Double>
namespace UnityPeripherals
open Stdlib
open Frduino
module Seq =
let K = new Genlet.For_lib.Seq.Builder() :> Lib.Seq.Builder
let append a b = K.append a b
type syntax<'T, 'TParam, 'TSerializer when 'TSerializer :> Stdlib.Serializable<'T, 'TParam>>(serializer: 'TSerializer) =
let async' = new Genlet.J()
let asyncseq' = new Genlet.A<'T, 'TParam, 'TSerializer>(serializer, "", "Serial")
member __.async with get () = async' :> Asyncseq.AsynBuilder
member __.asyncseq with get () = asyncseq' :> Asyncseq.AsyncseqBuilder<'T, 'TParam, 'TSerializer>
member __.seq with get () = ()
member sf.( + ) (_a: 'a) (_b: Asyncseq.AsynBuilder) = sf.asyncseq :> Asyncseq.AsyncseqBuilder<'T, 'TParam, 'TSerializer>
member __.lit<'a> (x: 'a) = asyncseq'.Lit x :> Asyncseq.expr<'a>
member __.float (x: float) = asyncseq'.Float x :> Asyncseq.expr<float>
member __.int (x: int) = asyncseq'.Int x :> Asyncseq.expr<int>
member __.double (x: System.Double) = Lowlevel.Double.return_ x
member __.tuple<'a, 'b, 'c> ((x, y, z)) = asyncseq'.Tup<'a, 'b, 'c>(x, y, z) :> Asyncseq.expr<('a * 'b * 'c)>