module Names.Tools exposing (..) {-| The Tools module helps with the generation of names. -} import Random exposing (Generator) chooseFrom2 : Generator a -> Generator a -> Generator a chooseFrom2 a b = Random.uniform a [ b ] |> Random.andThen identity chooseFrom3 : Generator a -> Generator a -> Generator a -> Generator a chooseFrom3 a b c = Random.uniform a [ b, c ] |> Random.andThen identity chooseFrom4 : Generator a -> Generator a -> Generator a -> Generator a -> Generator a chooseFrom4 a b c d = Random.uniform a [ b, c, d ] |> Random.andThen identity chooseFrom5 : Generator a -> Generator a -> Generator a -> Generator a -> Generator a -> Generator a chooseFrom5 a b c d e = Random.uniform a [ b, c, d, e ] |> Random.andThen identity chooseFrom6 : Generator a -> Generator a -> Generator a -> Generator a -> Generator a -> Generator a -> Generator a chooseFrom6 a b c d e f = Random.uniform a [ b, c, d, e, f ] |> Random.andThen identity chooseFrom7 : Generator a -> Generator a -> Generator a -> Generator a -> Generator a -> Generator a -> Generator a -> Generator a chooseFrom7 a b c d e f g = Random.uniform a [ b, c, d, e, f, g ] |> Random.andThen identity chooseFrom8 : Generator a -> Generator a -> Generator a -> Generator a -> Generator a -> Generator a -> Generator a -> Generator a -> Generator a chooseFrom8 a b c d e f g h = Random.uniform a [ b, c, d, e, f, g, h ] |> Random.andThen identity map2 : Generator String -> Generator String -> Generator String map2 = Random.map2 (++) map3 : Generator String -> Generator String -> Generator String -> Generator String map3 = Random.map3 (\a b c -> a ++ b ++ c) map4 : Generator String -> Generator String -> Generator String -> Generator String -> Generator String map4 = Random.map4 (\a b c d -> a ++ b ++ c ++ d) map5 : Generator String -> Generator String -> Generator String -> Generator String -> Generator String -> Generator String map5 = Random.map5 (\a b c d e -> a ++ b ++ c ++ d ++ e) map6 : Generator String -> Generator String -> Generator String -> Generator String -> Generator String -> Generator String -> Generator String map6 nm1 nm2 = Random.map5 (\( a, b ) c d e f -> a ++ b ++ c ++ d ++ e ++ f) (Random.map2 Tuple.pair nm1 nm2) map7 : Generator String -> Generator String -> Generator String -> Generator String -> Generator String -> Generator String -> Generator String -> Generator String map7 nm1 nm2 nm3 nm4 = Random.map5 (\( a, b ) ( c, d ) e f g -> a ++ b ++ c ++ d ++ e ++ f ++ g) (Random.map2 Tuple.pair nm1 nm2) (Random.map2 Tuple.pair nm3 nm4) map8 : Generator String -> Generator String -> Generator String -> Generator String -> Generator String -> Generator String -> Generator String -> Generator String -> Generator String map8 nm1 nm2 nm3 nm4 nm5 nm6 = Random.map5 (\( a, b ) ( c, d ) ( e, f ) g h -> a ++ b ++ c ++ d ++ e ++ f ++ g ++ h) (Random.map2 Tuple.pair nm1 nm2) (Random.map2 Tuple.pair nm3 nm4) (Random.map2 Tuple.pair nm5 nm6)