Changes between Version 11 and Version 12 of Records/OverloadedRecordFields
- Timestamp:
- 01/15/12 12:05:12 (17 months ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Records/OverloadedRecordFields
v11 v12 358 358 * Not overloaded, so you can't abstract over it. 359 359 360 == Alternative Proposal == 361 362 {{{ 363 class Has r k v where select :: r -> k -> v; 364 class Quasifunctor r s k u v where qfmap :: k -> (u -> v) -> r -> s; 365 }}} 366 367 Then, for example: 368 {{{ 369 data R a = R { x :: a }; 370 371 -- automatically-generated instances 372 instance Has (R a) "x" a where ... 373 instance Quasifunctor (R a) (R b) "x" a b where ... 374 375 r = R { x = 256 }; 376 -- assign value 3 to r.x 377 let s = qfmap (undefined :: "x") (const 3) r in ... 378 }}} 360 379 361 380 ------------------------
