consumeFreeformGameInfo header = fmap gameInfo tagValues where
    (tags, types) = unzip freeformGameInfo
    tagValues     = mapM (transMap (simple header)) tags
    gameInfo vals = (\m -> emptyGameInfo { T.freeform = m })
                  . Map.fromList . catMaybes
                  $ zipWith (fmap . (,)) types vals
consumeFreeformGameInfo header = fmap gameInfo tagValues where
    (tags, types) = unzip freeformGameInfo
    tagValues     = mapM (transMap (simple header)) tags
    gameInfo vals = (\m -> emptyGameInfo { T.freeform = m })
                  . Map.fromList . catMaybes
                  $ zipWith (fmap . (,)) types vals
consumeFreeformGameInfo header = fmap gameInfo tagValues where
    (tags, types) = unzip freeformGameInfo
    tagValues     = mapM (transMap (simple header)) tags
    gameInfo vals = (\m -> emptyGameInfo { T.freeform = m })
                  . Map.fromList . catMaybes
                  $ zipWith (fmap . (,)) types vals