The goal of Flow is to find errors in JavaScript code with little programmer effort. Flow relies heavily on type inference to find type errors even when the program has not been annotated It precisely tracks the types of variables as they flow through the program. At the same time, Flow is a gradual type system. Any parts of your program that are dynamic in nature can easily bypass the type checker so you can mix statically typed code with dynamic code. Flow also supports a highly expressive type language. Flow types can express much more fine-grained distinctions than traditional type systems. For example, Flow helps you catch errors involving null, unlike most type systems. NOTE: Flow does not support 32-bit systems, but there is a commented out patch included here that will allow it to build. Note that although `flow` will compile and run on a 32-bit system with this patch, it will not pass the built-in tests. The patch is included in the hopes that someone brave enough will investigate this and help upstream deliver 32-bit support.