module Allergies exposing (..) import List import Bitwise isAllergicTo : String -> Int -> Bool isAllergicTo name score = List.member name (toList score) toList : Int -> List String toList score = allergies |> List.indexedMap (\i n -> ( Bitwise.shiftLeft 1 i, n )) |> List.filter (\( s, n ) -> Bitwise.and s score > 0) |> List.map snd allergies : List String allergies = [ "eggs" , "peanuts" , "shellfish" , "strawberries" , "tomatoes" , "chocolate" , "pollen" , "cats" ]