This document describes a simple approach to embedding session type checking into programming languages with parametric polymorphism. It defines a core functional language called FuSe that combines multi-threading, session communication primitives, and runtime checks for endpoint linearity. FuSe types are represented in a way that allows the duality between session types to be expressed through type equality. The document outlines how FuSe is given an ML-style type system using encoded session types and how this ensures safety and progress for well-typed FuSe programs under the assumption of linear endpoint usage. It also describes an implementation of FuSe primitives in OCaml that allows writing session-based programs without a built-in session type system by leveraging features of OCaml