enrich polyref with sorts Cell[A]; functions . val : Cell[A] → B; . next : Cell[A] → Ref[Cell[A]]; predicates hasvalnext : Cell[A]; end enrich