let explode s = let sl = String.length s in let rec go pos = if pos >= sl then [] else unsafe_get s pos :: go (pos + 1) in go 0