UserPathAnything _rootLookup (TopRefP topref) = do
  m <- view (toplevelEnv . at topref)
  case m of
   Just (sig, x) -> return (sig, F.V x)
   Nothing -> throwError ("unexpected failure in followUserPathAnything: toplevel "
                          ++ show topref ++ " not in environment")

followUserPathAnything _rootLookup (TopRefP topref) = do
  m <- view (toplevelEnv . at topref)
  case m of
   Just (sig, x) -> return (sig, F.V x)
   Nothing -> throwError ("unexpected failure in followUserPathAnything: toplevel "
                          ++ show topref ++ " not in environment")
followUserPathAnything _rootLookup (TopRefP topref) = do
  m <- view (toplevelEnv . at topref)
  case m of
   Just (sig, x) -> return (sig, F.V x)
   Nothing -> throwError ("unexpected failure in followUserPathAnything: toplevel "
                          ++ show topref ++ " not in environment")