let reverse_complement a = Array.( let n = length a in init n (fun i -> let r = copy a.(n - 1 - i) in swap r 0 3 ; swap r 1 2 ; r) )