From 8fcfee7439b8b99beea193d72465575474caf507 Mon Sep 17 00:00:00 2001
From: Michiel Cottaar <michiel.cottaar@ndcn.ox.ac.uk>
Date: Wed, 31 Jan 2024 17:18:41 +0000
Subject: [PATCH] Clarify type hierarchy

---
 src/waveforms/generic.jl | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/waveforms/generic.jl b/src/waveforms/generic.jl
index 285b5b2..8ee9d7b 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
 
 
-- 
GitLab