#![feature(prelude_import)]
#![no_std]
#[prelude_import]
use ::std::prelude::v1::*;
#[macro_use]
extern crate std as std;
use tylift::tylift;
pub use __tylift_enum_Bool::*;
mod __tylift_enum_Bool {
use super::*;
pub trait Bool: __sealed::__Sealed { }
pub struct False(::std::marker::PhantomData<()>);
impl Bool for False<> { }
pub struct True(::std::marker::PhantomData<()>);
impl Bool for True<> { }
mod __sealed {
use super::*;
pub trait __Sealed { }
impl __Sealed for False<> { }
impl __Sealed for True<> { }
}
}
pub(crate) use __tylift_enum_Nat::*;
mod __tylift_enum_Nat {
use super::*;
pub trait Nat: __sealed::__Sealed { }
pub struct Zero(::std::marker::PhantomData<()>);
impl Nat for Zero<> { }
pub struct Succ<__T0: Nat>(::std::marker::PhantomData<(__T0)>);
impl <__T0: Nat> Nat for Succ<__T0> { }
mod __sealed {
use super::*;
pub trait __Sealed { }
impl __Sealed for Zero<> { }
impl <__T0: Nat> __Sealed for Succ<__T0> { }
}
}
use __tylift_enum_BinaryTree::*;
mod __tylift_enum_BinaryTree {
use super::*;
pub trait BinaryTree: __sealed::__Sealed { }
pub struct Leaf(::std::marker::PhantomData<()>);
impl BinaryTree for Leaf<> { }
pub struct Branch<__T0: BinaryTree, __T1: Nat,
__T2: BinaryTree>(::std::marker::PhantomData<(__T0,
__T1,
__T2)>);
impl <__T0: BinaryTree, __T1: Nat, __T2: BinaryTree> BinaryTree for
Branch<__T0, __T1, __T2> {
}
mod __sealed {
use super::*;
pub trait __Sealed { }
impl __Sealed for Leaf<> { }
impl <__T0: BinaryTree, __T1: Nat, __T2: BinaryTree> __Sealed for
Branch<__T0, __T1, __T2> {
}
}
}
fn main() { }