@@ -1,4 +1,4 @@
1−{-# LANGUAGE ScopedTypeVariables, LambdaCase, ConstraintKinds, TypeFamilies, FlexibleContexts, MultiParamTypeClasses, FlexibleInstances, RecursiveDo, GADTs, DataKinds, RankNTypes, TemplateHaskell #-}
1+{-# LANGUAGE ScopedTypeVariables, LambdaCase, ConstraintKinds, TypeFamilies, FlexibleContexts, MultiParamTypeClasses, FlexibleInstances, RecursiveDo, GADTs, DataKinds, RankNTypes, TemplateHaskell, FunctionalDependencies #-}
22
33module Reflex.Dom.Widget.Basic where
44
@@ -636,11 +636,11 @@ emptyElWith' elementTag cfg = do
636636elDynAttrNS' :: forall t m a. MonadWidget t m => Maybe String -> String -> Dynamic t (Map String String) -> m a -> m (El t, a)
637637elDynAttrNS' mns elementTag attrs = elWith' elementTag $
638638 def & namespace .~ mns
639− & elConfig_attributes .~ attrs
639+ & attributes .~ attrs
640640
641641{-# INLINABLE elDynAttr' #-}
642642elDynAttr' :: forall t m a. MonadWidget t m => String -> Dynamic t (Map String String) -> m a -> m (El t, a)
643−elDynAttr' elementTag attrs = elWith' elementTag $ def & elConfig_attributes .~ attrs
643+elDynAttr' elementTag attrs = elWith' elementTag $ def & attributes .~ attrs
644644
645645{-# INLINABLE elAttr #-}
646646elAttr :: forall t m a. MonadWidget t m => String -> Map String String -> m a -> m a
@@ -656,7 +656,7 @@ elAttr' elementTag attrs = elWith' elementTag $ def & attributes .~ attrs
656656
657657{-# INLINABLE elDynAttr #-}
658658elDynAttr :: forall t m a. MonadWidget t m => String -> Dynamic t (Map String String) -> m a -> m a
659−elDynAttr elementTag attrs = elWith elementTag $ def & elConfig_attributes .~ attrs
659+elDynAttr elementTag attrs = elWith elementTag $ def & attributes .~ attrs
660660
661661{-# INLINABLE el #-}
662662el :: forall t m a. MonadWidget t m => String -> m a -> m a
@@ -698,12 +698,10 @@ data Link t
698698 = Link { _link_clicked :: Event t ()
699699 }
700700
701−class HasAttributes a where
702− type Attrs a :: *
703− attributes :: Lens' a (Attrs a)
701+class HasAttributes s t a b | s -> a, t -> b, s b -> t, t a -> s where
702+ attributes :: Lens s t a b
704703
705−instance HasAttributes (ElConfig attrs) where
706− type Attrs (ElConfig attrs) = attrs
704+instance HasAttributes (ElConfig attrs) (ElConfig attrs') attrs attrs' where
707705 attributes = elConfig_attributes
708706
709707class HasNamespace a where