Allow function definitions in record syntax
Would it be possible to write
propertyMap :: (Monad m, Ord k) => v -> PropertyMap m k v
propertyMap v0 = go v0 Map.empty where
go v m = PropertyMap
{ getP = \k -> return $ maybe v id (Map.lookup k m)
, putP = \k v' -> return $ go v (Map.insert k v' m)
}
as
propertyMap :: (Monad m, Ord k) => v -> PropertyMap m k v
propertyMap v0 = go v0 Map.empty where
go v m = PropertyMap
{ getP k = return $ maybe v id (Map.lookup k m)
, putP k v' = return $ go v (Map.insert k v' m)
}
Simpler example MkFoo { id = \x -> x }
as
MkFoo { id x = x }
Trac metadata
Trac field | Value |
---|---|
Version | 8.0.1 |
Type | FeatureRequest |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |