anchor.diff:  
           x.AddView surfaceView
   
  -        x.Touch.Add (fun args ->
  -            let ev = args.Event
  -            let touchX = ev.GetX ()
  -            let touchY = ev.GetY ()
  +        x.Post (
  +            new Runnable (fun () ->
  +                    let layoutParams = new LinearLayout.LayoutParams (ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.WrapContent)
  +                    let layout = new LinearLayout (context)
  +                    layout.LayoutParameters <- layoutParams
   
  -            match args.Event.Action with
  +                    let view1 = new InputLookView (context, inputEvents)
  +                    let view2 = new InputMovementView (context, inputEvents)
  +                    let l1 = new LinearLayout.LayoutParams(x.Width / 2, x.Height)
  +                    let l2 = new LinearLayout.LayoutParams(x.Width / 2, x.Height)
   
  -            | MotionEventActions.Down ->
  -                lastTouchX <- touchX
  -                lastTouchY <- touchY
  -
  -            | MotionEventActions.Up ->
  -                inputEvents.Enqueue (KeyReleased ('w'))
  -
  -            | _ -> ()
  -
  -            if x.Width / 2 < int touchX then 
  -                match args.Event.Action with
  -
  -                | MotionEventActions.Down ->
  -                    inputEvents.Enqueue (KeyPressed ('w'))
  -
  -                | MotionEventActions.Up ->
  -                    inputEvents.Enqueue (KeyReleased ('w'))
  -
  -                | _ -> ()
  -
  -            else
  -                match args.Event.Action with
  -
  -                | MotionEventActions.Move ->
  -                    let xrel = touchX - lastTouchX
  -                    let yrel = touchY - lastTouchY
  -                    inputEvents.Enqueue (MouseMoved (0, 0, int xrel, int yrel))
  -
  -                | _ -> ()
  +                    layout.AddView (view1, l1)
  +                    layout.AddView (view2, l2)
  +                    x.AddView layout
  +            )
           )
  +        |> ignore
   
       interface IInput with
   
  
positive.code: open Android.Opengl
  open Android.Content.PM
  open Javax.Microedition.Khronos.Opengles;
  open OpenTK.Graphics
  open OpenTK.Graphics.ES30
  open OpenTK.Platform.Android
  
negative.code: type MainActivity () =
      inherit Activity ()
  
      let mutable glView = Unchecked.defaultof<GLView>
  
      override this.OnCreate (bundle) =
  
          base.OnCreate (bundle)
  
          this.Window.SetFlags (WindowManagerFlags.KeepScreenOn, WindowManagerFlags.KeepScreenOn)
  
          glView <- new GLView (this :> Context)
         
          this.SetContentView (glView)