<commit_before>/**
 ** \file object/alien.hh
 ** \brief Alien utilities
 */

#ifndef OBJECT_ALIEN_HH
# define OBJECT_ALIEN_HH

# include "object/alien-class.hh"

namespace object
{

  /// Build an alien
  template<typename T>
  rObject box_with_type(const T&, const std::string&);

  #define box(type, v)			\
    object::box_with_type(v, #type)

  /// Extract an alien content
  template<typename T>
  T unbox_with_type(const rObject&);
<commit_msg>Since we have the type around when building an alien, use it<commit_after>/**
 ** \file object/alien.hh
 ** \brief Alien utilities
 */

#ifndef OBJECT_ALIEN_HH
# define OBJECT_ALIEN_HH

# include "object/alien-class.hh"

namespace object
{

  /// Build an alien
  template<typename T>
  rObject box_with_type(const T&, const std::string&);

  #define box(type, v)			\
    object::box_with_type<type>(v, #type)

  /// Extract an alien content
  template<typename T>
  T unbox_with_type(const rObject&);

{'fraction_non_alphanumeric': 0.12513144058885384, 'fraction_numerical': 0.0, 'mean_word_length': 3.857142857142857, 'pattern_counts': {'":': 0, '<': 8, '<?xml version=': 0, '>': 8, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5353706', 'n_tokens_mistral': 351, 'n_tokens_neox': 336, 'n_words': 87}