diff --git a/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.H b/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.H
index 08ff3d52efc285252670b34c6d32366195379482..fd8f8d2655e13800f6f11af66e4e43579c0c2662 100644
--- a/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.H
+++ b/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.H
@@ -61,16 +61,6 @@ SourceFiles
 
 namespace Foam
 {
-
-// Forward declaration of friend functions and operators
-namespace Function1Types
-{
-    template<class Type> class CSV;
-};
-
-template<class Type>
-Ostream& operator<<(Ostream&, const Function1Types::CSV<Type>&);
-
 namespace Function1Types
 {
 
@@ -151,20 +141,8 @@ public:
 
     // Member Functions
 
-        // Access
-
-            //- Return const access to the file name
-            virtual const fileName& fName() const;
-
-
-    // I/O
-
-        //- Ostream Operator
-        friend Ostream& operator<< <Type>
-        (
-            Ostream& os,
-            const CSV<Type>& cnst
-        );
+        //- Return const access to the file name
+        virtual const fileName& fName() const;
 
         //- Write in dictionary format
         virtual void writeData(Ostream& os) const;
diff --git a/src/OpenFOAM/primitives/functions/Function1/CSV/CSVIO.C b/src/OpenFOAM/primitives/functions/Function1/CSV/CSVIO.C
index 5b4785b50d6bf78605f1204abd9e372d045b62ce..106ed929cbf3384e1da640de7ed30420d58e8293 100644
--- a/src/OpenFOAM/primitives/functions/Function1/CSV/CSVIO.C
+++ b/src/OpenFOAM/primitives/functions/Function1/CSV/CSVIO.C
@@ -27,28 +27,6 @@ License
 
 // * * * * * * * * * * * * * * * IOstream Operators  * * * * * * * * * * * * //
 
-template<class Type>
-Foam::Ostream& Foam::operator<<
-(
-    Ostream& os,
-    const Function1Types::CSV<Type>& tbl
-)
-{
-    os  << static_cast<const Function1<Type>& >(tbl)
-        << token::SPACE << tbl.nHeaderLine_
-        << token::SPACE << tbl.timeColumn_
-        << token::SPACE << tbl.componentColumns_
-        << token::SPACE << tbl.separator_
-        << token::SPACE << tbl.mergeSeparators_
-        << token::SPACE << tbl.fileName_;
-
-    // Check state of Ostream
-    os.check("Ostream& operator<<(Ostream&, const CSV<Type>&)");
-
-    return os;
-}
-
-
 template<class Type>
 void Foam::Function1Types::CSV<Type>::writeData(Ostream& os) const
 {
diff --git a/src/OpenFOAM/primitives/functions/Function1/Constant/Constant.H b/src/OpenFOAM/primitives/functions/Function1/Constant/Constant.H
index 756e65af53a7a3e240de02ddc9b1e6de8b62d21c..eda6f21654a81cbbe3654788320e049f92e5a7a9 100644
--- a/src/OpenFOAM/primitives/functions/Function1/Constant/Constant.H
+++ b/src/OpenFOAM/primitives/functions/Function1/Constant/Constant.H
@@ -46,16 +46,6 @@ SourceFiles
 
 namespace Foam
 {
-
-// Forward declaration of friend functions and operators
-namespace Function1Types
-{
-    template<class Type> class Constant;
-};
-
-template<class Type>
-Ostream& operator<<(Ostream&, const Function1Types::Constant<Type>&);
-
 namespace Function1Types
 {
 
@@ -118,16 +108,6 @@ public:
         //- Integrate between two values
         Type integrate(const scalar x1, const scalar x2) const;
 
-
-    // I/O
-
-        //- Ostream Operator
-        friend Ostream& operator<< <Type>
-        (
-            Ostream& os,
-            const Constant<Type>& cnst
-        );
-
         //- Write in dictionary format
         virtual void writeData(Ostream& os) const;
 };
diff --git a/src/OpenFOAM/primitives/functions/Function1/Constant/ConstantIO.C b/src/OpenFOAM/primitives/functions/Function1/Constant/ConstantIO.C
index bbc5141929d62c46e9352421be4c0fd0b22575fd..af9f5e439a24e1937db756bf757798ea754d33bf 100644
--- a/src/OpenFOAM/primitives/functions/Function1/Constant/ConstantIO.C
+++ b/src/OpenFOAM/primitives/functions/Function1/Constant/ConstantIO.C
@@ -27,26 +27,6 @@ License
 
 // * * * * * * * * * * * * * * * IOstream Operators  * * * * * * * * * * * * //
 
-template<class Type>
-Foam::Ostream& Foam::operator<<
-(
-    Ostream& os,
-    const Function1Types::Constant<Type>& cnst
-)
-{
-    os  << static_cast<const Function1<Type>& >(cnst)
-        << token::SPACE << cnst.value_;
-
-    // Check state of Ostream
-    os.check
-    (
-        "Ostream& operator<<(Ostream&, const Constant<Type>&)"
-    );
-
-    return os;
-}
-
-
 template<class Type>
 void Foam::Function1Types::Constant<Type>::writeData(Ostream& os) const
 {
diff --git a/src/OpenFOAM/primitives/functions/Function1/Function1/Function1IO.C b/src/OpenFOAM/primitives/functions/Function1/Function1/Function1IO.C
index a0835be61dc9e2076da5a022d7a63d0c65435a4e..47f7ef93124f2c6cdcb9a0da017afe85fac83523 100644
--- a/src/OpenFOAM/primitives/functions/Function1/Function1/Function1IO.C
+++ b/src/OpenFOAM/primitives/functions/Function1/Function1/Function1IO.C
@@ -31,7 +31,7 @@ template<class Type>
 Foam::Ostream& Foam::operator<<
 (
     Ostream& os,
-    const Function1<Type>& de
+    const Function1<Type>& f1
 )
 {
     // Check state of Ostream
@@ -40,7 +40,8 @@ Foam::Ostream& Foam::operator<<
         "Ostream& operator<<(Ostream&, const Function1<Type>&)"
     );
 
-    os  << de.name_;
+    os  << f1.name_;
+    f1.writeData(os);
 
     return os;
 }
diff --git a/src/OpenFOAM/primitives/functions/Function1/PolynomialEntry/PolynomialEntry.H b/src/OpenFOAM/primitives/functions/Function1/PolynomialEntry/PolynomialEntry.H
index 04ad5dfb7b7e71bbf994fb07e85362c918856a3b..93ddccbe65845a3beaa008b844dcf18983a1ca05 100644
--- a/src/OpenFOAM/primitives/functions/Function1/PolynomialEntry/PolynomialEntry.H
+++ b/src/OpenFOAM/primitives/functions/Function1/PolynomialEntry/PolynomialEntry.H
@@ -53,16 +53,6 @@ SourceFiles
 
 namespace Foam
 {
-
-// Forward declaration of friend functions and operators
-namespace Function1Types
-{
-    template<class Type> class Polynomial;
-};
-
-template<class Type>
-Ostream& operator<<(Ostream&, const Function1Types::Polynomial<Type>&);
-
 namespace Function1Types
 {
 
@@ -138,15 +128,6 @@ public:
             Type integrate(const scalar x1, const scalar x2) const;
 
 
-    // I/O
-
-        //- Ostream Operator
-        friend Ostream& operator<< <Type>
-        (
-            Ostream& os,
-            const Polynomial<Type>& cnst
-        );
-
         //- Write in dictionary format
         virtual void writeData(Ostream& os) const;
 };
diff --git a/src/OpenFOAM/primitives/functions/Function1/PolynomialEntry/PolynomialEntryIO.C b/src/OpenFOAM/primitives/functions/Function1/PolynomialEntry/PolynomialEntryIO.C
index 80d4f00bcc98769d80eaea0ea6c092480de680c6..6aa58e405d0bd90cae36c47c550e3ab452d1a962 100644
--- a/src/OpenFOAM/primitives/functions/Function1/PolynomialEntry/PolynomialEntryIO.C
+++ b/src/OpenFOAM/primitives/functions/Function1/PolynomialEntry/PolynomialEntryIO.C
@@ -27,26 +27,6 @@ License
 
 // * * * * * * * * * * * * * * * IOstream Operators  * * * * * * * * * * * * //
 
-template<class Type>
-Foam::Ostream& Foam::operator<<
-(
-    Ostream& os,
-    const Function1Types::Polynomial<Type>& poly
-)
-{
-    os  << static_cast<const Function1<Type>& >(poly)
-        << token::SPACE << poly.coeffs_;
-
-    // Check state of Ostream
-    os.check
-    (
-        "Ostream& operator<<(Ostream&, const Polynomial&)"
-    );
-
-    return os;
-}
-
-
 template<class Type>
 void Foam::Function1Types::Polynomial<Type>::writeData(Ostream& os) const
 {
diff --git a/src/OpenFOAM/primitives/functions/Function1/Table/Table.H b/src/OpenFOAM/primitives/functions/Function1/Table/Table.H
index afa30eec61519f20b40645ed04c66a03e91530d6..ab1cafd9c5eb320c43fb350287f30cead30701d1 100644
--- a/src/OpenFOAM/primitives/functions/Function1/Table/Table.H
+++ b/src/OpenFOAM/primitives/functions/Function1/Table/Table.H
@@ -52,16 +52,6 @@ SourceFiles
 
 namespace Foam
 {
-
-// Forward declaration of friend functions and operators
-namespace Function1Types
-{
-    template<class Type> class Table;
-};
-
-template<class Type>
-Ostream& operator<<(Ostream&, const Function1Types::Table<Type>&);
-
 namespace Function1Types
 {
 
diff --git a/src/OpenFOAM/primitives/functions/Function1/Table/TableBase.H b/src/OpenFOAM/primitives/functions/Function1/Table/TableBase.H
index d3eb69e788a44bf1cc54f742cf877f05725f4b2f..1f2ab0f46f4401c4433f7a6168ec8ad4e175b2ac 100644
--- a/src/OpenFOAM/primitives/functions/Function1/Table/TableBase.H
+++ b/src/OpenFOAM/primitives/functions/Function1/Table/TableBase.H
@@ -45,15 +45,6 @@ namespace Foam
 
 class interpolationWeights;
 
-// Forward declaration of friend functions and operators
-namespace Function1Types
-{
-    template<class Type> class TableBase;
-};
-
-template<class Type>
-Ostream& operator<<(Ostream&, const Function1Types::TableBase<Type>&);
-
 namespace Function1Types
 {
 
@@ -167,16 +158,6 @@ public:
         //- Return the dependent values
         virtual tmp<Field<Type>> y() const;
 
-
-    // I/O
-
-        //- Ostream Operator
-        friend Ostream& operator<< <Type>
-        (
-            Ostream& os,
-            const TableBase<Type>& tbl
-        );
-
         //- Write all table data in dictionary format
         virtual void writeData(Ostream& os) const;
 
diff --git a/src/OpenFOAM/primitives/functions/Function1/Table/TableBaseIO.C b/src/OpenFOAM/primitives/functions/Function1/Table/TableBaseIO.C
index 372317ae4e4e4252fc71119d231edc76e2f4560e..d607649ad58991c2bdcee61db635664b31c7e52e 100644
--- a/src/OpenFOAM/primitives/functions/Function1/Table/TableBaseIO.C
+++ b/src/OpenFOAM/primitives/functions/Function1/Table/TableBaseIO.C
@@ -27,26 +27,6 @@ License
 
 // * * * * * * * * * * * * * * * IOstream Operators  * * * * * * * * * * * * //
 
-template<class Type>
-Foam::Ostream& Foam::operator<<
-(
-    Ostream& os,
-    const Function1Types::TableBase<Type>& tbl
-)
-{
-    os  << static_cast<const Function1<Type>&>(tbl);
-    os << token::SPACE << tbl.table_;
-
-    // Check state of Ostream
-    os.check
-    (
-        "Ostream& operator<<(Ostream&, const TableBase<Type>&, const bool)"
-    );
-
-    return os;
-}
-
-
 template<class Type>
 void Foam::Function1Types::TableBase<Type>::writeData(Ostream& os) const
 {
diff --git a/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.H b/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.H
index 2ce0e09597de65d0a7c089c6aead0391be4a3444..3bb7d0f813c9e7e58473e702ebd7295c53a49014 100644
--- a/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.H
+++ b/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.H
@@ -63,16 +63,6 @@ SourceFiles
 
 namespace Foam
 {
-
-// Forward declaration of friend functions and operators
-namespace Function1Types
-{
-    template<class Type> class TableFile;
-};
-
-template<class Type>
-Ostream& operator<<(Ostream&, const Function1Types::TableFile<Type>&);
-
 namespace Function1Types
 {