diff --git a/src/dense_fsa.jl b/src/dense_fsa.jl
index 2fd712a2c66340be1899d82e4f2fcfde3641f710..39efba1d11a8ce9e6e10231fbba93ed8d4a26585 100644
--- a/src/dense_fsa.jl
+++ b/src/dense_fsa.jl
@@ -38,7 +38,7 @@ end
 λ(G::DenseFSA) = repeat(G.Σ, size(G.H, 2) - 1)
 
 # Intersection with DenseFSA
-struct IntersectedDenseFSA{K, L, T<:AbstractFSA{K, L}} <: IntersectedAbstractFSA{K, L, DenseFSA{K, L}, T}
+struct IntersectedDenseFSA{K, L, T<:AbstractFSA{K, L}} <: AbstractAcyclicFSA{K, L}
     A::DenseFSA{K, L}
     B::T
     C::AbstractMatrix{K}  # of shape |Σ| x nstates(A)
diff --git a/src/intersect.jl b/src/intersect.jl
index 846d4ce0108c52649948b362f59b159a9850c46f..ee1e13bb560fa8c254fe29a6b9e43a86d0ae28cd 100644
--- a/src/intersect.jl
+++ b/src/intersect.jl
@@ -1,6 +1,4 @@
-abstract type IntersectedAbstractFSA{K, L, T_A, T_B} <: AbstractFSA{K, L} end
-
-struct IntersectedFSA{K, L, T_A<:AbstractFSA{K,L}, T_B<:AbstractFSA{K,L}} <: IntersectedAbstractFSA{K,L,T_A,T_B}
+struct IntersectedFSA{K, L, T_A<:AbstractFSA{K,L}, T_B<:AbstractFSA{K,L}} <: AbstractFSA{K, L}
     A::T_A
     B::T_B
     M::AbstractMatrix{K}