# Pastebin JBELuISb type family Checkbox a where Checkbox "disabled" = Bool Checkbox "checked" = Bool newtype Prop name = Prop { unProp :: Checkbox name } mapKeys :: forall prop. (KnownSymbol prop, Show (Checkbox prop)) => TypeRepMap Prop -> [Maybe (Text, Maybe Text)] mapKeys testMap = match <$> keys testMap where match (SomeTypeRep (x :: TypeRep (Prop prop))) = Just (pack . show $ x, pack . show . unProp <$> Data.TypeRepMap.lookup @prop testMap) match _ = Nothing eval :: IO () eval = print $ mapKeys $ insert (Prop @"disabled" True) Data.TypeRepMap.empty