On Tue, Aug 12, 2008 at 11:23:10PM -0700, Jason Dagit wrote:
> > And I wrote more of this email and then lost it.  We'd need to rewrite
> > withGutsOf to accept a WIO as an argument, and we'd make
> >
> > withRepoLock :: [DarcsFlag] -> (forall p C(r u). RepoPatch p => Repository
> > p C(r u u) -> IO a) -> IO a
> >
> > and various other changes such as
> >
> > tentativelyAddPatch :: RepoPatch p => [DarcsFlag] -> PatchInfoAnd p C(t t')
> > -> WIO p C(r u t t') ()
> >
> > Anyhow, this will be a lot of work...
> 
> 
> Yes, I was thinking of exactly the same structure when I was writing the
> "mapAdd".  You probably saw my comment about constructing a new Repository
> object on the recursive call.  Maybe we can move to what you propose
> eventually, but it seems there is lower hanging type safety that we can pick
> first.
> 
> Oh and that reminds me, I was reminded from writing mapAdd how unsafe the
> constructors of values with phantoms types can be when you're using the
> phantoms as witnesses.  I need to comment on that in my writing.

Indeed, we need to be very careful about where type constructors are
imported.  It might even (some day) be worth giving them "unsafe"
identifiers and adding them to tests/haskell_policy.sh.
-- 
David Roundy
Department of Physics
Oregon State University
_______________________________________________
darcs-users mailing list
[email protected]
http://lists.osuosl.org/mailman/listinfo/darcs-users

Reply via email to