summaryrefslogtreecommitdiff
path: root/src/Propellor/Property
diff options
context:
space:
mode:
authorJoey Hess2018-04-30 09:03:46 -0400
committerJoey Hess2018-04-30 09:03:46 -0400
commit14fe4c4d6b5a29be94ecfc0572e0f9a9a081e795 (patch)
tree38ad23b09bd21a8569568335a13bfde9c16e79c1 /src/Propellor/Property
parent96ea8e04251bc23dd27faf1f486a2a9f9c29ff98 (diff)
fix broken SemigroupMonoid transition <<loop>>
Turns out that with ghc 8.2.2, the instructions given on the page don't work. And the cppless variant that I had compiles, but into effectively mappend = mappend so it loops. The only way I can see to make it work without cpp is to use mappend = (Sem.<>) which is ugly and a land mine waiting to explode if someone changes it to a nicer mappend = (<>) with a newer version of ghc which will compile it and work ok, while breaking it with 8.2.2. Sigh. I posted to haskell-cafe about this.
Diffstat (limited to 'src/Propellor/Property')
-rw-r--r--src/Propellor/Property/Ccache.hs2
-rw-r--r--src/Propellor/Property/Debootstrap.hs2
-rw-r--r--src/Propellor/Property/DiskImage/PartSpec.hs2
-rw-r--r--src/Propellor/Property/Firewall.hs2
-rw-r--r--src/Propellor/Property/Installer/Target.hs2
-rw-r--r--src/Propellor/Property/Parted.hs2
-rw-r--r--src/Propellor/Property/Parted/Types.hs4
-rw-r--r--src/Propellor/Property/Ssh.hs4
8 files changed, 10 insertions, 10 deletions
diff --git a/src/Propellor/Property/Ccache.hs b/src/Propellor/Property/Ccache.hs
index ebc21b88..ea729b7c 100644
--- a/src/Propellor/Property/Ccache.hs
+++ b/src/Propellor/Property/Ccache.hs
@@ -31,7 +31,7 @@ instance Sem.Semigroup Limit where
instance Monoid Limit where
mempty = NoLimit
- mappend = (<>)
+ mappend = (Sem.<>)
-- | A string that will be parsed to get a data size.
--
diff --git a/src/Propellor/Property/Debootstrap.hs b/src/Propellor/Property/Debootstrap.hs
index c6e5c373..923229be 100644
--- a/src/Propellor/Property/Debootstrap.hs
+++ b/src/Propellor/Property/Debootstrap.hs
@@ -41,7 +41,7 @@ instance Sem.Semigroup DebootstrapConfig where
instance Monoid DebootstrapConfig where
mempty = DefaultConfig
- mappend = (<>)
+ mappend = (Sem.<>)
toParams :: DebootstrapConfig -> [CommandParam]
toParams DefaultConfig = []
diff --git a/src/Propellor/Property/DiskImage/PartSpec.hs b/src/Propellor/Property/DiskImage/PartSpec.hs
index 0698d806..652b53c8 100644
--- a/src/Propellor/Property/DiskImage/PartSpec.hs
+++ b/src/Propellor/Property/DiskImage/PartSpec.hs
@@ -189,7 +189,7 @@ instance Sem.Semigroup PartLocation where
instance Monoid PartLocation where
mempty = Middle
- mappend = (<>)
+ mappend = (Sem.<>)
partLocation :: PartSpec PartLocation -> PartLocation -> PartSpec PartLocation
partLocation (mp, o, p, _) l = (mp, o, p, l)
diff --git a/src/Propellor/Property/Firewall.hs b/src/Propellor/Property/Firewall.hs
index ff7ffebf..7b62558d 100644
--- a/src/Propellor/Property/Firewall.hs
+++ b/src/Propellor/Property/Firewall.hs
@@ -205,4 +205,4 @@ instance Sem.Semigroup Rules where
instance Monoid Rules where
mempty = Everything
- mappend = (<>)
+ mappend = (Sem.<>)
diff --git a/src/Propellor/Property/Installer/Target.hs b/src/Propellor/Property/Installer/Target.hs
index 54e9075e..8c865143 100644
--- a/src/Propellor/Property/Installer/Target.hs
+++ b/src/Propellor/Property/Installer/Target.hs
@@ -444,7 +444,7 @@ instance Sem.Semigroup TargetFilled where
instance Monoid TargetFilled where
mempty = TargetFilled (0 % 1)
- mappend = (<>)
+ mappend = (Sem.<>)
newtype TargetFilledHandle = TargetFilledHandle Integer
diff --git a/src/Propellor/Property/Parted.hs b/src/Propellor/Property/Parted.hs
index 39ee1723..e11acf57 100644
--- a/src/Propellor/Property/Parted.hs
+++ b/src/Propellor/Property/Parted.hs
@@ -193,7 +193,7 @@ instance Sem.Semigroup DiskPart where
instance Monoid DiskPart
where
mempty = FixedDiskPart
- mappend = (<>)
+ mappend = (Sem.<>)
-- | Make a partition use some percentage of the size of the disk
-- (less all fixed size partitions), or the remaining space in the disk.
diff --git a/src/Propellor/Property/Parted/Types.hs b/src/Propellor/Property/Parted/Types.hs
index 5891cc16..11e0947c 100644
--- a/src/Propellor/Property/Parted/Types.hs
+++ b/src/Propellor/Property/Parted/Types.hs
@@ -31,7 +31,7 @@ instance Sem.Semigroup PartTable where
instance Monoid PartTable where
-- | default TableType is MSDOS, with a `safeAlignment`.
mempty = PartTable MSDOS safeAlignment []
- mappend = (<>)
+ mappend = (Sem.<>)
-- | A partition on the disk.
data Partition = Partition
@@ -93,7 +93,7 @@ instance Sem.Semigroup PartSize where
instance Monoid PartSize where
mempty = MegaBytes 0
- mappend = (<>)
+ mappend = (Sem.<>)
reducePartSize :: PartSize -> PartSize -> PartSize
reducePartSize (MegaBytes a) (MegaBytes b) = MegaBytes (a - b)
diff --git a/src/Propellor/Property/Ssh.hs b/src/Propellor/Property/Ssh.hs
index 05098983..c23a121b 100644
--- a/src/Propellor/Property/Ssh.hs
+++ b/src/Propellor/Property/Ssh.hs
@@ -238,7 +238,7 @@ instance Sem.Semigroup HostKeyInfo where
instance Monoid HostKeyInfo where
mempty = HostKeyInfo M.empty
- mappend = (<>)
+ mappend = (Sem.<>)
userPubKeys :: User -> [(SshKeyType, PubKeyText)] -> Property (HasInfo + UnixLike)
userPubKeys u@(User n) l = pureInfoProperty ("ssh pubkey for " ++ n) $
@@ -260,7 +260,7 @@ instance Sem.Semigroup UserKeyInfo where
instance Monoid UserKeyInfo where
mempty = UserKeyInfo M.empty
- mappend = (<>)
+ mappend = (Sem.<>)
-- | Sets up a user with the specified public keys, and the corresponding
-- private keys from the privdata.