id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
157	Do a more fine-grained dangerous variables check	benl		"At the moment, if we have a data type like

{{{
data Thing r1 (C r2 (Int r3)) (Int r4)
 ...

}}}

If `r1` is mutable then all of `r2, r3, r4` are marked as dangerous. However, If these variables are non-material in the type, then we don't actually have to mark them as dangerous.

NB: If we do this we'll also want to test for and reject nested data types, as the current algorithm for determining which variables are dangerous doesn't support them.


"	enhancement	new	normal	0.1.5	Source Type Inferencer	0.1.2			
