
#8299: Add richer data model address arithmetic: AddrDiff and AddrInt (ie d Int_ptr_diff and Int_ptr_size) ----------------------------+---------------------------------------------- Reporter: carter | Owner: Type: feature | Status: new request | Milestone: 7.10.1 Priority: high | Version: 7.6.3 Component: | Keywords: Compiler | Architecture: Unknown/Multiple Resolution: | Difficulty: Project (more than a week) Operating System: | Blocked By: Unknown/Multiple | Related Tickets: Type of failure: | None/Unknown | Test Case: | Blocking: 8287 | ----------------------------+---------------------------------------------- Comment (by carter): @simon I think so! (though i could be wrong). I'll have to mull over it a bit as I have time on the associated api: would motivate adding Torsors to GHC Base I think. http://www.reddit.com/r/haskell/comments/166iju/subtractable_values_are_tors... http://ro-che.info/articles/2013-01-08-torsors.html and http://hackage.haskell.org/packages/archive/vector-space/latest/doc/html /Data-AffineSpace.html with the key bits being {{{ class AdditiveGroup (Diff p) => AffineSpace p whereSource Associated Types type Diff p Source Associated vector space Methods (.-.) :: p -> p -> Diff pSource Subtract points (.+^) :: p -> Diff p -> pSource Point plus vector }}} in this case, the Addr would the the "points", and the offset type would be type Diff Addr = AddrDiff or something like that. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8299#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler