# Experimental code

Any unsafe or experimental code should be prefixed with _experimental, e.g. _experimentalComponentName or _experimentalHelperFunction()

The _experimental prefix should only be used if the experimental/unsafe logic is that code's responsiblity. Do not mark higher order functions/components just because they contain experimental components. For example, in a React app:

const _experimentalComponent = () => <p>A string that could be unsafe</p>

// Parent is technically unsafe because UnsafeChild is experimental, 
// but the unsafe logic is entirely UnsafeChild's responsibility, not Parent's.
const Parent = () => 
   <>
      <h1>
         Header Text
      </h1>
      <_experimentalComponent/>
   </>

Or in a JS library:

const _experimentalTransformProcess = data => {
   const transformedData = data.map(datum => datum.transform())
   return transformedData
}

const prettyTransform = data => {
   return _experimentalTransformProcess(data).map(datum => datum.toString().toUpperCase()).join(', ')
}