Question: I'm hoping someone can help me out here. I set where I want the items to be using constraints and when I run and build the app it seems to push everything to the top. This occurs even when I don't put any constraints on any items. I've attached pictures if they help at all.

![http://i.stack.imgur.com/POFJo.png](https://i.stack.imgur.com/POFJo.png)

![http://i.stack.imgur.com/c6lBz.png](https://i.stack.imgur.com/c6lBz.png)

Answer: 
The `List.choose` function does a map and filter in one pass, and so avoids creating one of the intermediate lists created by Bartek's answer:

```
List.zip booleans values
|> List.choose (function (false, v) -> Some v | _ -> None)

```

If only there was a `List.choose2`, then we wouldn't need to zip either!
If your list are the same length you can zip them (make a new list that contains pairs of (switch \* value) and then filter that new list grabbing only those pairs that have false in the first element.

```
List.zip booleans values
|> List.filter (fst >> not)
// grab only values
|> List.map snd

```