diff --git a/dahdit-midi.cabal b/dahdit-midi.cabal
--- a/dahdit-midi.cabal
+++ b/dahdit-midi.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           dahdit-midi
-version:        0.5.3
+version:        0.5.4
 synopsis:       MIDI and OSC parsing/printing with dahdit
 description:    Please see the README on GitHub at <https://github.com/ejconlon/dahdit#readme>
 homepage:       https://github.com/ejconlon/dahdit#readme
diff --git a/src/Dahdit/Midi/Osc.hs b/src/Dahdit/Midi/Osc.hs
--- a/src/Dahdit/Midi/Osc.hs
+++ b/src/Dahdit/Midi/Osc.hs
@@ -162,6 +162,33 @@
   DatumTime _ -> DatumTypeTime
   DatumMidi _ -> DatumTypeMidi
 
+class IsDatum a where
+  toDatum :: a -> Datum
+
+instance IsDatum Int32 where
+  toDatum = DatumInt32
+
+instance IsDatum Int64 where
+  toDatum = DatumInt64
+
+instance IsDatum Float where
+  toDatum = DatumFloat
+
+instance IsDatum Double where
+  toDatum = DatumDouble
+
+instance IsDatum Text where
+  toDatum = DatumString
+
+instance IsDatum ShortByteString where
+  toDatum = DatumBlob
+
+instance IsDatum NtpTime where
+  toDatum = DatumTime
+
+instance IsDatum PortMsg where
+  toDatum = DatumMidi
+
 newtype Sig = Sig {unSig :: Seq DatumType}
   deriving stock (Show)
   deriving newtype (Eq, Ord)
