add some simplistic type / range annotations for records in headers
diff --git a/include/gtt.hrl b/include/gtt.hrl
index 7d48ae7..8af7dcd 100644
--- a/include/gtt.hrl
+++ b/include/gtt.hrl
@@ -1,26 +1,34 @@
+
+-type digit()		:: 0..9.
+-type global_title()	:: non_neg_integer().
+-type digit_list()	:: [digit()].
+-type nature_of_addr()	:: 1..256.	% FIXME
+-type numbering_plan()	:: 1..256.	% FIXME
+
 % Record describing a GTT match
 -record(gtt_match, {
-	 gt_range_from,		% integer(), GT range lower boundary, included
-	 gt_range_to,		% integer(), GT range upper boundary, included
-	 numbering_plan,	% integer()
-	 nature_of_addr_ind,	% integer()
-	 dpc,			% integer()
-	 ssn}).
+	 gt_range_from	:: global_title(),	% integer(), GT range lower boundary, included
+	 gt_range_to	:: global_title(),	% integer(), GT range upper boundary, included
+	 numbering_plan :: numbering_plan(),
+	 nature_of_addr_ind :: nature_of_addr(),
+	 dpc		:: non_neg_integer(),
+	 ssn		:: non_neg_integer()
+ 	}).
 
 % GTT action for replacing some digits
 -record(gtt_act_repl_digits, {
-	 replace_digit_start,	% integer(), digit from which we should replace
-	 replace_digit_end,	% integer
-	 new_digits		% list of integers
+	 replace_digit_start	:: non_neg_integer(),	% digit from which we should replace
+	 replace_digit_end	:: non_neg_integer(),
+	 new_digits		:: digit_list()
 	}).
 
 % GTT action for replacing the numbering plan
 -record(gtt_act_repl_num_plan, {
-	 numbering_plan
+	numbering_plan		:: numbering_plan()
 	}).
 
 % GTT action for a generic apply/3 call
 -record(gtt_act_apply, {
 	 funct,
-	 args
+	 args			:: list()
 	}).
diff --git a/include/isup.hrl b/include/isup.hrl
index a1b5531..794f291 100644
--- a/include/isup.hrl
+++ b/include/isup.hrl
@@ -105,8 +105,10 @@
 	phone_number}
 	).
 
+-type isup_cic()	::	0..65535.
+
 -record(isup_msg, {
-	msg_type,
-	cic,
-	parameters
+	msg_type		:: non_neg_integer(),
+	cic			:: isup_cic(),
+	parameters		:: list()
 	}).
diff --git a/include/m2ua.hrl b/include/m2ua.hrl
index e3bea0e..c43884b 100644
--- a/include/m2ua.hrl
+++ b/include/m2ua.hrl
@@ -73,8 +73,8 @@
 -define(M2UA_P_COM_CORREL_ID,		19).
 
 -record(m2ua_msg, {
-	msg_class,
-	msg_type,
+	msg_class	:: 0..255,
+	msg_type	:: 0..255,
 	parameters
 	}).
 
diff --git a/include/m3ua.hrl b/include/m3ua.hrl
index e5f0f6d..a5973a7 100644
--- a/include/m3ua.hrl
+++ b/include/m3ua.hrl
@@ -63,10 +63,10 @@
 -define(M3UA_IEI_DEREG_STATUS,		16#0213).
 
 -record(m3ua_msg, {
-	 version,
-	 msg_class,
-	 msg_type,
-	 msg_length,
+	 version	:: 0..255,
+	 msg_class	:: 0..255,
+	 msg_type	:: 0..255,
+	 msg_length	:: non_neg_integer(),
 	 payload
 	}).
 
diff --git a/include/osmo_util.hrl b/include/osmo_util.hrl
index e81d24e..f537b2c 100644
--- a/include/osmo_util.hrl
+++ b/include/osmo_util.hrl
@@ -1,8 +1,10 @@
 
+-type prim_spec_name() :: 'request' | 'response' | 'confirm' | 'indication'.
+
 % a primitive how it is used inside the SCCP stack and to the user
 -record(primitive, {
 	  subsystem,
 	  gen_name,
-	  spec_name,
-	  parameters
+	  spec_name :: prim_spec_name(),
+	  parameters :: list()
 	}).
diff --git a/include/sccp.hrl b/include/sccp.hrl
index 83386cc..4201ce0 100644
--- a/include/sccp.hrl
+++ b/include/sccp.hrl
@@ -122,20 +122,22 @@
 -define(SCCP_SSN_MAP_SGSN,	149).
 -define(SCCP_SSN_MAP_GGSN,	150).
 
+-type sccp_msg_type()		:: 0..255.
+-type sccp_proto_class()	:: 0..3.
 
 % a single parsed SCCP message
 -record(sccp_msg, {
-	msg_type,
+	msg_type	:: sccp_msg_type(),
 	parameters
 	}).
 
 
 -record(global_title, {
-	  gti,
-	  nature_of_addr_ind,
+	  gti :: 0..15,
+	  nature_of_addr_ind :: 0..255,
 	  trans_type,
-	  encoding,
-	  numbering_plan,
+	  encoding	:: 0..15,
+	  numbering_plan:: 0..15,
 	  phone_number
 	}).