+type PAMethod = (Builtins -> Var, String)
+
+pa_length, pa_replicate, pa_empty, pa_pack :: (Builtins -> Var, String)
+pa_length = (lengthPAVar, "lengthPA")
+pa_replicate = (replicatePAVar, "replicatePA")
+pa_empty = (emptyPAVar, "emptyPA")
+pa_pack = (packPAVar, "packPA")
+
+paMethod :: PAMethod -> Type -> VM CoreExpr
+paMethod (_method, name) ty
+ | Just tycon <- splitPrimTyCon ty
+ = do
+ fn <- traceMaybeV "paMethod" (ppr tycon <+> text name)
+ $ lookupPrimMethod tycon name
+ return (Var fn)
+
+paMethod (method, _name) ty