+corePrepExprFloat env (Note note@(TickBox {}) expr)
+ = corePrepAnExpr env expr `thenUs` \ expr1 ->
+ deLamFloat expr1 `thenUs` \ (floats, expr2) ->
+ return (floats, Note note expr2)
+
+corePrepExprFloat env (Note note@(BinaryTickBox m t e) expr)
+ = corePrepAnExpr env expr `thenUs` \ expr1 ->
+ deLamFloat expr1 `thenUs` \ (floats, expr2) ->
+ getUniqueUs `thenUs` \ u ->
+ let bndr = mkSysLocal FSLIT("t") u boolTy in
+ return (floats, Case expr2
+ bndr
+ boolTy
+ [ (DataAlt falseDataCon, [], Note (TickBox m e) (Var falseDataConId))
+ , (DataAlt trueDataCon, [], Note (TickBox m t) (Var trueDataConId))
+ ])
+