public static Behavior <float> operator +(Behavior <T> a, Behavior <float> b)
 {
     return(Behavior.Lift((float x, float y) => x + y)(a.ToSingle(), b));
 }
 public static Behavior <IDrawing> Cirle(Behavior <Brush> brush, Behavior <float> size)
 {
     return(Behavior.Lift <Brush, float, IDrawing>(Drawings.Circle)(brush, size));
 }
 public static Behavior <IDrawing> Translate(this Behavior <IDrawing> drawing, Behavior <float> x, Behavior <float> y)
 {
     return(Behavior.Lift <IDrawing, float, float, IDrawing>(Drawings.Translate)(drawing, x, y));
 }
 // Lifted version of drawing operations
 public static Behavior <IDrawing> Compose(this Behavior <IDrawing> anim1, Behavior <IDrawing> anim2)
 {
     return(Behavior.Lift <IDrawing, IDrawing, IDrawing>(Drawings.Compose)(anim1, anim2));
 }