diff --git a/mypy.ini b/mypy.ini
index 999a7e5904e2df44d08d8fd449465c56a970fa21..8e9fe08334a08d8ab0a272f114d4a719d81398ed 100644
--- a/mypy.ini
+++ b/mypy.ini
@@ -8,6 +8,9 @@ ignore_errors=true
 [mypy-pystencils.backend.*]
 ignore_errors = False
 
+[mypy-pystencils.types.*]
+ignore_errors = False
+
 [mypy-setuptools.*]
 ignore_missing_imports=true
 
diff --git a/src/pystencils/backend/arrays.py b/src/pystencils/backend/arrays.py
index be159bcaee50db472cd04e8cf15d8cd4f384f59a..ccefa1d7816911a0cf8b04cc5f604181f1ccca65 100644
--- a/src/pystencils/backend/arrays.py
+++ b/src/pystencils/backend/arrays.py
@@ -43,7 +43,7 @@ from types import EllipsisType
 from abc import ABC
 
 from .constants import PsConstant
-from .types import (
+from ..types import (
     PsAbstractType,
     PsPointerType,
     PsIntegerType,
diff --git a/src/pystencils/backend/ast/expressions.py b/src/pystencils/backend/ast/expressions.py
index a4b784dc441617e86fd542787815b488b75ea5cb..0db3d98b62ba64db1cb5c1c2a672b6ad60374c2f 100644
--- a/src/pystencils/backend/ast/expressions.py
+++ b/src/pystencils/backend/ast/expressions.py
@@ -6,7 +6,7 @@ from ..symbols import PsSymbol
 from ..constants import PsConstant
 from ..arrays import PsLinearizedArray, PsArrayBasePointer
 from ..functions import PsFunction
-from ..types import (
+from ...types import (
     PsAbstractType,
     PsScalarType,
     PsVectorType,
diff --git a/src/pystencils/backend/constants.py b/src/pystencils/backend/constants.py
index 2ebe855aeddc3ab02ce3a06c4541e4d3837606e7..6e76f6dbb18654888a228f4730319b94fedeace1 100644
--- a/src/pystencils/backend/constants.py
+++ b/src/pystencils/backend/constants.py
@@ -1,6 +1,6 @@
 from typing import Any
 
-from .types import PsNumericType, constify
+from ..types import PsNumericType, constify
 from .exceptions import PsInternalCompilerError
 
 
diff --git a/src/pystencils/backend/emission.py b/src/pystencils/backend/emission.py
index 829ffb53af3fa2e85df110b0c570921e3af94ee9..cd8b09303fb19b4dda41842857b7697f7c17be65 100644
--- a/src/pystencils/backend/emission.py
+++ b/src/pystencils/backend/emission.py
@@ -30,7 +30,7 @@ from .ast.expressions import (
     PsCast,
 )
 
-from .types import PsScalarType
+from ..types import PsScalarType
 
 from .ast.kernelfunction import PsKernelFunction
 
diff --git a/src/pystencils/backend/jit/cpu_extension_module.py b/src/pystencils/backend/jit/cpu_extension_module.py
index ce0ab049b81d7b2a1d367d005b8a51997a2edc1e..060aab78883b2e3d69bfad1f707fc30cb78a1c98 100644
--- a/src/pystencils/backend/jit/cpu_extension_module.py
+++ b/src/pystencils/backend/jit/cpu_extension_module.py
@@ -20,13 +20,13 @@ from ..arrays import (
     PsArrayShapeSymbol,
     PsArrayStrideSymbol,
 )
-from ..types import (
+from ...types import (
     PsAbstractType,
     PsUnsignedIntegerType,
     PsSignedIntegerType,
     PsIeeeFloatType,
 )
-from ..types.quick import Fp, SInt, UInt
+from ...types.quick import Fp, SInt, UInt
 from ..emission import emit_code
 
 
diff --git a/src/pystencils/backend/kernelcreation/context.py b/src/pystencils/backend/kernelcreation/context.py
index ba6574090969fa26f4e138adb750170218a6f0a4..9ebc913d5a60e956c9f4af2a64cb3c5cd78f7aa6 100644
--- a/src/pystencils/backend/kernelcreation/context.py
+++ b/src/pystencils/backend/kernelcreation/context.py
@@ -10,8 +10,8 @@ from ...sympyextensions.typed_sympy import TypedSymbol, BasicType, StructType
 
 from ..symbols import PsSymbol
 from ..arrays import PsLinearizedArray
-from ..types import PsAbstractType, PsIntegerType, PsNumericType
-from ..types.quick import make_type
+from ...types import PsAbstractType, PsIntegerType, PsNumericType
+from ...types.quick import make_type
 from ..constraints import PsKernelParamsConstraint
 from ..exceptions import PsInternalCompilerError, KernelConstraintsError
 
diff --git a/src/pystencils/backend/kernelcreation/freeze.py b/src/pystencils/backend/kernelcreation/freeze.py
index b69c6c2dd45d141fca5ec3f24019a95f4800cf12..d0bca50a0bd44ebe1f9d914d33efc8a280080fa6 100644
--- a/src/pystencils/backend/kernelcreation/freeze.py
+++ b/src/pystencils/backend/kernelcreation/freeze.py
@@ -27,7 +27,7 @@ from ..ast.expressions import (
 )
 
 from ..constants import PsConstant
-from ..types import constify, make_type, PsAbstractType, PsStructType
+from ...types import constify, make_type, PsAbstractType, PsStructType
 from ..exceptions import PsInputError
 from ..functions import PsMathFunction, MathFunctions
 
diff --git a/src/pystencils/backend/kernelcreation/iteration_space.py b/src/pystencils/backend/kernelcreation/iteration_space.py
index 7d99b47ca9a4cc8ee13cd5cdb036978965c504ea..2215c7e6af6d5ee6f1cc2fbe985b4d3756cd06ea 100644
--- a/src/pystencils/backend/kernelcreation/iteration_space.py
+++ b/src/pystencils/backend/kernelcreation/iteration_space.py
@@ -16,7 +16,7 @@ from ..constants import PsConstant
 from ..ast.expressions import PsExpression, PsConstantExpr
 from ..arrays import PsLinearizedArray
 from ..ast.util import failing_cast
-from ..types import PsStructType, constify
+from ...types import PsStructType, constify
 from ..exceptions import PsInputError, KernelConstraintsError
 
 if TYPE_CHECKING:
diff --git a/src/pystencils/backend/kernelcreation/typification.py b/src/pystencils/backend/kernelcreation/typification.py
index 9e49ef75871a0690aea17fd7bd9f76c51f84c121..5c041fb2a74dde777002c8f3fea18db85bd4d704 100644
--- a/src/pystencils/backend/kernelcreation/typification.py
+++ b/src/pystencils/backend/kernelcreation/typification.py
@@ -3,7 +3,7 @@ from __future__ import annotations
 from typing import TypeVar
 
 from .context import KernelCreationContext
-from ..types import PsAbstractType, PsNumericType, PsStructType, deconstify
+from ...types import PsAbstractType, PsNumericType, PsStructType, deconstify
 from ..ast.structural import PsAstNode, PsBlock, PsLoop, PsExpression, PsAssignment
 from ..ast.expressions import (
     PsSymbolExpr,
diff --git a/src/pystencils/backend/platforms/generic_cpu.py b/src/pystencils/backend/platforms/generic_cpu.py
index 8f8c0fab87d623ebb1e2e398554fe567da8e8af7..d512153a6e7c2c8a22821f5a1f6b596af1addc6c 100644
--- a/src/pystencils/backend/platforms/generic_cpu.py
+++ b/src/pystencils/backend/platforms/generic_cpu.py
@@ -18,7 +18,7 @@ from ..ast.expressions import (
     PsVectorArrayAccess,
     PsLookup,
 )
-from ..types import PsVectorType, PsCustomType
+from ...types import PsVectorType, PsCustomType
 from ..transformations.vector_intrinsics import IntrinsicOps
 
 
diff --git a/src/pystencils/backend/platforms/x86.py b/src/pystencils/backend/platforms/x86.py
index 7fa92c16d3e599fe275b6a6d9683ca66d9050a01..7b42c48903c94b6d6971b22cd15beba377c73e25 100644
--- a/src/pystencils/backend/platforms/x86.py
+++ b/src/pystencils/backend/platforms/x86.py
@@ -10,12 +10,12 @@ from ..ast.expressions import (
     PsSubscript,
 )
 from ..transformations.vector_intrinsics import IntrinsicOps
-from ..types import PsCustomType, PsVectorType
+from ...types import PsCustomType, PsVectorType
 from ..constants import PsConstant
 
 from .generic_cpu import GenericVectorCpu, IntrinsicsError
 
-from ..types.quick import Fp, SInt
+from ...types.quick import Fp, SInt
 from ..functions import CFunction
 
 
diff --git a/src/pystencils/backend/symbols.py b/src/pystencils/backend/symbols.py
index d4ff5eafd071d4690d8ead4f9db83d7fa62f759d..7b266d05c41747a99930305640facb63e4532782 100644
--- a/src/pystencils/backend/symbols.py
+++ b/src/pystencils/backend/symbols.py
@@ -1,4 +1,4 @@
-from .types import PsAbstractType, PsTypeError
+from ..types import PsAbstractType, PsTypeError
 from .exceptions import PsInternalCompilerError
 
 
diff --git a/src/pystencils/backend/transformations/erase_anonymous_structs.py b/src/pystencils/backend/transformations/erase_anonymous_structs.py
index ebaeecdd725bc7ffced8c293d2820c17898cebc5..ecca07aea426f0b4455f258c36616861385bf7a2 100644
--- a/src/pystencils/backend/transformations/erase_anonymous_structs.py
+++ b/src/pystencils/backend/transformations/erase_anonymous_structs.py
@@ -13,7 +13,7 @@ from ..ast.expressions import (
     PsCast,
 )
 from ..arrays import PsArrayBasePointer, TypeErasedBasePointer
-from ..types import PsStructType, PsPointerType
+from ...types import PsStructType, PsPointerType
 
 
 class EraseAnonymousStructTypes:
diff --git a/src/pystencils/backend/transformations/vector_intrinsics.py b/src/pystencils/backend/transformations/vector_intrinsics.py
index d2f58d2c3d8a74a7b72bbfca4ca4c1a7cbaf4c29..e587ba129836817e719f0dd27e72cddde8c76013 100644
--- a/src/pystencils/backend/transformations/vector_intrinsics.py
+++ b/src/pystencils/backend/transformations/vector_intrinsics.py
@@ -4,7 +4,7 @@ from enum import Enum, auto
 
 from ..ast.structural import PsAstNode, PsAssignment, PsStatement
 from ..ast.expressions import PsExpression
-from ..types import PsVectorType, deconstify
+from ...types import PsVectorType, deconstify
 from ..ast.expressions import (
     PsVectorArrayAccess,
     PsSymbolExpr,
diff --git a/src/pystencils/config.py b/src/pystencils/config.py
index 1e811f231f4e89e6bf54c6d0095dd02a3530e5af..300123a75642037e278dd7b12343c435729d35e0 100644
--- a/src/pystencils/config.py
+++ b/src/pystencils/config.py
@@ -6,7 +6,7 @@ from .field import Field, FieldType
 
 from .backend.jit import JitBase
 from .backend.exceptions import PsOptionsError
-from .backend.types import PsIntegerType, PsNumericType, PsIeeeFloatType
+from .types import PsIntegerType, PsNumericType, PsIeeeFloatType
 
 from .defaults import DEFAULTS
 
diff --git a/src/pystencils/defaults.py b/src/pystencils/defaults.py
index a031fd58cd029983d78ef3e441b03acfc49801ca..16357fe737b3f4265284c05f458aa4dbb1c490a3 100644
--- a/src/pystencils/defaults.py
+++ b/src/pystencils/defaults.py
@@ -1,5 +1,5 @@
 from typing import TypeVar, Generic, Callable
-from .backend.types import PsAbstractType, PsIeeeFloatType, PsSignedIntegerType, PsStructType
+from .types import PsAbstractType, PsIeeeFloatType, PsSignedIntegerType, PsStructType
 
 from pystencils.sympyextensions.typed_sympy import TypedSymbol
 
diff --git a/src/pystencils/backend/types/__init__.py b/src/pystencils/types/__init__.py
similarity index 100%
rename from src/pystencils/backend/types/__init__.py
rename to src/pystencils/types/__init__.py
diff --git a/src/pystencils/backend/types/basic_types.py b/src/pystencils/types/basic_types.py
similarity index 99%
rename from src/pystencils/backend/types/basic_types.py
rename to src/pystencils/types/basic_types.py
index 8b7fdf794facbe78443cff9ac5a8f98f9c7a1a25..947895e2cccaad34592984e189f32efb13346a51 100644
--- a/src/pystencils/backend/types/basic_types.py
+++ b/src/pystencils/types/basic_types.py
@@ -7,7 +7,6 @@ from copy import copy
 import numpy as np
 
 from .exception import PsTypeError
-from ..exceptions import PsInternalCompilerError
 
 
 class PsAbstractType(ABC):
@@ -198,7 +197,7 @@ class PsStructType(PsAbstractType):
     @property
     def name(self) -> str:
         if self._name is None:
-            raise PsInternalCompilerError(
+            raise PsTypeError(
                 "Cannot retrieve name from anonymous struct type"
             )
         return self._name
@@ -218,7 +217,7 @@ class PsStructType(PsAbstractType):
 
     def c_string(self) -> str:
         if self._name is None:
-            raise PsInternalCompilerError(
+            raise PsTypeError(
                 "Cannot retrieve C string for anonymous struct type"
             )
         return self._name
@@ -399,7 +398,7 @@ class PsVectorType(PsNumericType):
         )
 
     def c_string(self) -> str:
-        raise PsInternalCompilerError(
+        raise PsTypeError(
             "Cannot retrieve C type string for generic vector types."
         )
 
diff --git a/src/pystencils/backend/types/exception.py b/src/pystencils/types/exception.py
similarity index 100%
rename from src/pystencils/backend/types/exception.py
rename to src/pystencils/types/exception.py
diff --git a/src/pystencils/backend/types/parsing.py b/src/pystencils/types/parsing.py
similarity index 100%
rename from src/pystencils/backend/types/parsing.py
rename to src/pystencils/types/parsing.py
diff --git a/src/pystencils/backend/types/quick.py b/src/pystencils/types/quick.py
similarity index 100%
rename from src/pystencils/backend/types/quick.py
rename to src/pystencils/types/quick.py
diff --git a/tests/nbackend/kernelcreation/test_options.py b/tests/nbackend/kernelcreation/test_options.py
index 8d145da752b2625d7e02bf47e3e3944d4343933e..7fa7fc5131c657da7b9faa5fb983330e6fde8964 100644
--- a/tests/nbackend/kernelcreation/test_options.py
+++ b/tests/nbackend/kernelcreation/test_options.py
@@ -1,7 +1,7 @@
 import pytest
 
 from pystencils.field import Field, FieldType
-from pystencils.backend.types.quick import *
+from pystencils.types.quick import *
 from pystencils.config import (
     CreateKernelConfig,
     PsOptionsError,
diff --git a/tests/nbackend/kernelcreation/test_typification.py b/tests/nbackend/kernelcreation/test_typification.py
index 9b9aba35d220c8824b2530a44034d1d4696442dd..9f49b2ed08dcc87b0071e9539caf1ead5c4725b4 100644
--- a/tests/nbackend/kernelcreation/test_typification.py
+++ b/tests/nbackend/kernelcreation/test_typification.py
@@ -6,8 +6,8 @@ from pystencils import Assignment, TypedSymbol, Field, FieldType
 
 from pystencils.backend.ast.structural import PsDeclaration
 from pystencils.backend.ast.expressions import PsConstantExpr, PsSymbolExpr, PsBinOp
-from pystencils.backend.types import constify
-from pystencils.backend.types.quick import Fp, make_numeric_type
+from pystencils.types import constify
+from pystencils.types.quick import Fp, make_numeric_type
 from pystencils.backend.kernelcreation.context import KernelCreationContext
 from pystencils.backend.kernelcreation.freeze import FreezeExpressions
 from pystencils.backend.kernelcreation.typification import Typifier, TypificationError
diff --git a/tests/nbackend/test_code_printing.py b/tests/nbackend/test_code_printing.py
index be690db7cae32aa68c1394a68c126c2fc7c1b2c3..9480cbdf3b441314dc75640674cc30a25a9804af 100644
--- a/tests/nbackend/test_code_printing.py
+++ b/tests/nbackend/test_code_printing.py
@@ -6,7 +6,7 @@ from pystencils.backend.ast.kernelfunction import PsKernelFunction
 from pystencils.backend.symbols import PsSymbol
 from pystencils.backend.constants import PsConstant
 from pystencils.backend.arrays import PsLinearizedArray, PsArrayBasePointer
-from pystencils.backend.types.quick import Fp, SInt, UInt
+from pystencils.types.quick import Fp, SInt, UInt
 from pystencils.backend.emission import CAstPrinter
 
 
diff --git a/tests/nbackend/test_constant_folding.py b/tests/nbackend/test_constant_folding.py
index b71b36ea86de344a54309227e3f104fdefd685e3..ee214ff53a6243f44da11ec91a54e5fa2cd0066c 100644
--- a/tests/nbackend/test_constant_folding.py
+++ b/tests/nbackend/test_constant_folding.py
@@ -1,7 +1,7 @@
 #   TODO: Reimplement for constant folder
 # import pytest
 
-# from pystencils.backend.types.quick import *
+# from pystencils.types.quick import *
 # from pystencils.backend.constants import PsConstant
 
 
diff --git a/tests/nbackend/test_cpujit.py b/tests/nbackend/test_cpujit.py
index 1163c40ceea55728d66e49f718388887d4097ff3..bf17b981222279d04e6bf0188fc793e5244f8cc0 100644
--- a/tests/nbackend/test_cpujit.py
+++ b/tests/nbackend/test_cpujit.py
@@ -11,7 +11,7 @@ from pystencils.backend.ast.expressions import PsArrayAccess, PsExpression
 from pystencils.backend.ast.structural import PsAssignment, PsBlock, PsLoop
 from pystencils.backend.ast.kernelfunction import PsKernelFunction
 
-from pystencils.backend.types.quick import SInt, Fp
+from pystencils.types.quick import SInt, Fp
 from pystencils.backend.jit import LegacyCpuJit
 
 import numpy as np
diff --git a/tests/nbackend/types/test_constants.py b/tests/nbackend/types/test_constants.py
index 4353973f5f6ab9b9ff6db4d30f955c3376f1beb8..4d948e4e3d7238c87b849e7e787dee138320a94d 100644
--- a/tests/nbackend/types/test_constants.py
+++ b/tests/nbackend/types/test_constants.py
@@ -1,8 +1,8 @@
 # import pytest
 
 # TODO: Re-implement for constant folder
-# from pystencils.backend.types.quick import *
-# from pystencils.backend.types import PsTypeError
+# from pystencils.types.quick import *
+# from pystencils.types import PsTypeError
 # from pystencils.backend.typed_expressions import PsTypedConstant
 
 
diff --git a/tests/nbackend/types/test_types.py b/tests/nbackend/types/test_types.py
index 9726fac47cfb38b61903e518b04c86ea2b69bc80..5f11cd0815f8865172036b381b3b1e87d16275eb 100644
--- a/tests/nbackend/types/test_types.py
+++ b/tests/nbackend/types/test_types.py
@@ -2,8 +2,8 @@ import pytest
 import numpy as np
 
 from pystencils.backend.exceptions import PsInternalCompilerError
-from pystencils.backend.types import *
-from pystencils.backend.types.quick import *
+from pystencils.types import *
+from pystencils.types.quick import *
 
 
 @pytest.mark.parametrize(
@@ -119,5 +119,5 @@ def test_struct_types():
 
     assert t.anonymous
     assert str(t) == "<anonymous>"
-    with pytest.raises(PsInternalCompilerError):
+    with pytest.raises(PsTypeError):
         t.c_string()