- | And(f1,f2) -> 2+17*f1.fid + 37*f2.fid
- | Or(f1,f2) -> 3+101*f1.fid + 253*f2.fid
- | Atom(d,b,s) -> 5+(if d=`Left then 11 else 19)*(if b then 23 else 31)*s
+ | And(f1,f2) -> (2+17*f1.fid + 37*f2.fid) land max_int
+ | Or(f1,f2) -> (3+101*f1.fid + 253*f2.fid) land max_int
+ | Atom(`Left,true,s) -> (5 + 11 * 23 * s) land max_int
+ | Atom(`Right,true,s) -> (5 + 19 * 23 * s) land max_int
+ | Atom(`Left,false,s) -> (5 + 11 * 39 * s) land max_int
+ | Atom(`Right,false,s) -> (5 + 19 * 39 * s) land max_int