diff --git a/src/waveforms/generic.jl b/src/waveforms/generic.jl
index 285b5b2b85d4f708bb0546a356796e122c1c7ef2..8ee9d7bfce2e1ef73daee08f8f276a23abff4544 100644
--- a/src/waveforms/generic.jl
+++ b/src/waveforms/generic.jl
@@ -9,10 +9,16 @@ import ...Variables: flip_angle, amplitude, phase, frequency, bandwidth, inverse
 """
 Parent type for all objects, where gradients, RF pulses, and/or readouts might overlap with each other.
 
-All children need to be at least convertable into [`GenericWaveform`](@ref).
-They might also override specific functions that can be computed more efficiently
+Do not sub-type from this type directly, use [`SpecificWaveform`](@ref) instead.
 """
 abstract type AbstractWaveform <: ContainerBlock end
+
+"""
+Parent type for any specific gradient waveform that might overlap with RF pulses and/or readouts.
+
+New waveforms should sub-type from this one.
+At the very least they should implement a conversion to [`GenericWaveform`](@ref).
+"""
 abstract type SpecificWaveform <: AbstractWaveform end