title: How to bring a data kind to the value level?
body: <p>I have something like this in my code:</p>
  
  <pre><code>data SomeKind = Kind1 | Kind2 deriving Eq
  
  data SomeValue (t :: SomeKind) = SomeValue
  
  someValue1 :: SomeValue Kind1
  someValue1 = SomeValue
  
  someValue2 :: SomeValue Kind2
  someValue2 = SomeValue
  </code></pre>
  
  <p>I want to get the kind that's in the type level to the value level, perhaps something like:</p>
  
  <pre><code>valueKind :: SomeValue a -&gt; SomeKind
  </code></pre>
  
  <p>that will:</p>
  
  <pre><code>valueKind someValue1 == Kind1
  valueKind someValue2 == Kind2
  </code></pre>
  
  <p>Is it possible?</p>