@@ -12,12 +12,12 @@ import Data.EuclideanRing (mod, (/))
1212import Data.Ord ((<=))
1313import Data.Ordering (Ordering (..))
1414import Data.Semigroup (class Semigroup , class SemigroupRecord , (<>))
15- import Data.Symbol (class IsSymbol , SProxy (..), reflectSymbol )
15+ import Data.Symbol (class IsSymbol , reflectSymbol )
1616import Data.Unit (Unit , unit )
1717import Prim.Row as Row
1818import Prim.RowList as RL
1919import Record.Unsafe (unsafeSet )
20- import Type.Data.RowList ( RLProxy (..))
20+ import Type.Proxy ( Proxy (..))
2121
2222-- | A `Monoid` is a `Semigroup` with a value `mempty`, which is both a
2323-- | left and right unit for the associative operation `<>`:
@@ -89,8 +89,9 @@ guard false _ = mempty
8989
9090-- | A class for records where all fields have `Monoid` instances, used to
9191-- | implement the `Monoid` instance for records.
92+ class MonoidRecord :: RL.RowList Type -> Row Type -> Row Type -> Constraint
9293class SemigroupRecord rowlist row subrow <= MonoidRecord rowlist row subrow | rowlist -> row subrow where
93- memptyRecord :: RLProxy rowlist -> Record subrow
94+ memptyRecord :: forall rlproxy . rlproxy rowlist -> Record subrow
9495
9596instance monoidRecordNil :: MonoidRecord RL.Nil row () where
9697 memptyRecord _ = {}
@@ -105,6 +106,6 @@ instance monoidRecordCons
105106 memptyRecord _
106107 = insert mempty tail
107108 where
108- key = reflectSymbol (SProxy :: SProxy key )
109+ key = reflectSymbol (Proxy :: Proxy key )
109110 insert = unsafeSet key :: focus -> Record subrowTail -> Record subrow
110111 tail = memptyRecord (Proxy :: Proxy rowlistTail )
0 commit comments