cost :: Item -> ResourceCount
cost c = byItemType itemType'
  where itemType' = case c of
          Building x -> case x of 
            Edifice (OnPoint _ _ h) -> H h
            Roadway (OnEdge _ _) -> Road
          Card _ -> DevelopmentCard
          Potential x -> x
        byItemType x = case x of
          H Settlement -> mempty { lumber = 1, brick = 1, wool = 1, wheat = 1 }
          H City -> mempty { wheat = 2, ore = 3 }
          Road ->  mempty { lumber = 1, brick = 1 }
          DevelopmentCard -> mempty { wool = 1, wheat = 1, ore = 1 }
cost :: Item -> ResourceCount
cost c = byItemType itemType'
  where itemType' = case c of
          Building x -> case x of 
            Edifice (OnPoint _ _ h) -> H h
            Roadway (OnEdge _ _) -> Road
          Card _ -> DevelopmentCard
          Potential x -> x
        byItemType x = case x of
          H Settlement -> mempty { lumber = 1, brick = 1, wool = 1, wheat = 1 }
          H City -> mempty { wheat = 2, ore = 3 }
          Road ->  mempty { lumber = 1, brick = 1 }
          DevelopmentCard -> mempty { wool = 1, wheat = 1, ore = 1 }
cost c = byItemType itemType'
  where itemType' = case c of
          Building x -> case x of 
            Edifice (OnPoint _ _ h) -> H h
            Roadway (OnEdge _ _) -> Road
          Card _ -> DevelopmentCard
          Potential x -> x
        byItemType x = case x of
          H Settlement -> mempty { lumber = 1, brick = 1, wool = 1, wheat = 1 }
          H City -> mempty { wheat = 2, ore = 3 }
          Road ->  mempty { lumber = 1, brick = 1 }
          DevelopmentCard -> mempty { wool = 1, wheat = 1, ore = 1 }