where
args = case Type.splitTyConApp_maybe ty of
Just (tycon, args) -> args
- Nothing -> error $ "CoreTools.tfvec_len Not a vector type: " ++ (pprString ty)
+ Nothing -> error $ "\nCoreTools.tfvec_len: Not a vector type: " ++ (pprString ty)
[len, el_ty] = args
-- | Get the element type of a TFVec type
where
args = case Type.splitTyConApp_maybe ty of
Just (tycon, args) -> args
- Nothing -> error $ "CoreTools.tfvec_len Not a vector type: " ++ (pprString ty)
+ Nothing -> error $ "\nCoreTools.tfvec_len: Not a vector type: " ++ (pprString ty)
[len, el_ty] = args
-- Is this a wild binder?
-- simple Var CoreExprs, not complexer ones.
exprToVar :: CoreSyn.CoreExpr -> Var.Id
exprToVar (CoreSyn.Var id) = id
+exprToVar expr = error $ "\nCoreTools.exprToVar: Not a var: " ++ show expr
-- Removes all the type and dictionary arguments from the given argument list,
-- leaving only the normal value arguments. The type given is the type of the