-- -*- M2-comint -*- hash: 7442665674999089450

i1 : pdim' = M -> M.cache.pdim' ??= ( printerr "computing pdim'"; pdim M );

i2 : R = QQ[x,y,z];

i3 : M = coker vars R;

i4 : elapsedTime pdim' M
 -- computing pdim'
 -- .00403583s elapsed

o4 = 3

i5 : elapsedTime pdim' M
 -- 9.8e-7s elapsed

o5 = 3

i6 : peek M.cache

o6 = CacheTable{cache => MutableHashTable{}                                              }
                isHomogeneous => true
                minimalPresentation => (OptionTable{Exclude => {}}) => cokernel | z y x |
                pdim' => 3
                presentation => | x y z |

i7 : code(hh, Sequence, ProjectiveVariety)

o7 = -- code for method: hh(Sequence,ProjectiveVariety)
     ../Varieties.m2:800:34-809:7: --source code:
     hh(Sequence,ProjectiveVariety) := (pq,X) -> if X.cache.?hh and X.cache.hh#?pq then X.cache.hh#pq else (
          (p,q) := pq;
          if class p =!= ZZ or class q =!= ZZ then error "expected integer superscripts";
          d := dim X;
          pqs := { (p,q), (q,p), (d-p,d-q), (d-q,d-p) };
          (p,q) = min { (p,q), (q,p), (d-p,d-q), (d-q,d-p) };
          h := rank HH^q cotangentSheaf(p,X);
          if not X.cache.?hh then X.cache.hh = new MutableHashTable;
          scan(pqs, pq -> X.cache.hh#pq = h);
          h)

i8 : 
