<!DOCTYPE html >
<html>
        <head>
<link rel="canonical" href="https://ignite.apache.org/releases/2.8.0/scaladoc/scalar/index/index-v.html" />
<META NAME="ROBOTS" CONTENT="NOINDEX">



          <title>Ignite Scalar</title>
          <meta name="description" content="Ignite Scalar" />
          <meta name="keywords" content="Ignite Scalar" />
          <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
          
      <link href="../lib/ref-index.css" media="screen" type="text/css" rel="stylesheet" />
      <script type="text/javascript" src="../lib/jquery.js"></script>
    
        <link rel='shortcut icon' href='https://ignite.apache.org/favicon.ico'/>

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-61232409-1', 'auto');
  ga('send', 'pageview');

</script></head>

        <body><div class="entry">
      <div class="name">value</div>
      <div class="occurrences"><a href="../org/apache/ignite/scalar/pimps/PimpedType.html" class="extype" name="org.apache.ignite.scalar.pimps.PimpedType">PimpedType</a> <a href="../org/apache/ignite/scalar/pimps/ScalarCachePimp.html" class="extype" name="org.apache.ignite.scalar.pimps.ScalarCachePimp">ScalarCachePimp</a> <a href="../org/apache/ignite/scalar/pimps/ScalarProjectionPimp.html" class="extype" name="org.apache.ignite.scalar.pimps.ScalarProjectionPimp">ScalarProjectionPimp</a> </div>
    </div></body>
      </html>
